mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 18:53:35 +00:00
vendor update for CSI 0.3.0
This commit is contained in:
16
vendor/google.golang.org/grpc/examples/route_guide/client/client.go
generated
vendored
16
vendor/google.golang.org/grpc/examples/route_guide/client/client.go
generated
vendored
@ -46,7 +46,9 @@ var (
|
||||
// printFeature gets the feature for the given point.
|
||||
func printFeature(client pb.RouteGuideClient, point *pb.Point) {
|
||||
log.Printf("Getting feature for point (%d, %d)", point.Latitude, point.Longitude)
|
||||
feature, err := client.GetFeature(context.Background(), point)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
feature, err := client.GetFeature(ctx, point)
|
||||
if err != nil {
|
||||
log.Fatalf("%v.GetFeatures(_) = _, %v: ", client, err)
|
||||
}
|
||||
@ -56,7 +58,9 @@ func printFeature(client pb.RouteGuideClient, point *pb.Point) {
|
||||
// printFeatures lists all the features within the given bounding Rectangle.
|
||||
func printFeatures(client pb.RouteGuideClient, rect *pb.Rectangle) {
|
||||
log.Printf("Looking for features within %v", rect)
|
||||
stream, err := client.ListFeatures(context.Background(), rect)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
stream, err := client.ListFeatures(ctx, rect)
|
||||
if err != nil {
|
||||
log.Fatalf("%v.ListFeatures(_) = _, %v", client, err)
|
||||
}
|
||||
@ -82,7 +86,9 @@ func runRecordRoute(client pb.RouteGuideClient) {
|
||||
points = append(points, randomPoint(r))
|
||||
}
|
||||
log.Printf("Traversing %d points.", len(points))
|
||||
stream, err := client.RecordRoute(context.Background())
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
stream, err := client.RecordRoute(ctx)
|
||||
if err != nil {
|
||||
log.Fatalf("%v.RecordRoute(_) = _, %v", client, err)
|
||||
}
|
||||
@ -108,7 +114,9 @@ func runRouteChat(client pb.RouteGuideClient) {
|
||||
{Location: &pb.Point{Latitude: 0, Longitude: 2}, Message: "Fifth message"},
|
||||
{Location: &pb.Point{Latitude: 0, Longitude: 3}, Message: "Sixth message"},
|
||||
}
|
||||
stream, err := client.RouteChat(context.Background())
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
stream, err := client.RouteChat(ctx)
|
||||
if err != nil {
|
||||
log.Fatalf("%v.RouteChat(_) = _, %v", client, err)
|
||||
}
|
||||
|
5
vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go
generated
vendored
5
vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go
generated
vendored
@ -21,6 +21,7 @@ package mock_routeguide_test
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/golang/mock/gomock"
|
||||
"github.com/golang/protobuf/proto"
|
||||
@ -59,7 +60,9 @@ func TestRouteChat(t *testing.T) {
|
||||
}
|
||||
|
||||
func testRouteChat(client rgpb.RouteGuideClient) error {
|
||||
stream, err := client.RouteChat(context.Background())
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
stream, err := client.RouteChat(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
207
vendor/google.golang.org/grpc/examples/route_guide/routeguide/route_guide.pb.go
generated
vendored
207
vendor/google.golang.org/grpc/examples/route_guide/routeguide/route_guide.pb.go
generated
vendored
@ -1,19 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: route_guide.proto
|
||||
|
||||
/*
|
||||
Package routeguide is a generated protocol buffer package.
|
||||
|
||||
It is generated from these files:
|
||||
route_guide.proto
|
||||
|
||||
It has these top-level messages:
|
||||
Point
|
||||
Rectangle
|
||||
Feature
|
||||
RouteNote
|
||||
RouteSummary
|
||||
*/
|
||||
package routeguide
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
@ -41,14 +28,36 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
// Latitudes should be in the range +/- 90 degrees and longitude should be in
|
||||
// the range +/- 180 degrees (inclusive).
|
||||
type Point struct {
|
||||
Latitude int32 `protobuf:"varint,1,opt,name=latitude" json:"latitude,omitempty"`
|
||||
Longitude int32 `protobuf:"varint,2,opt,name=longitude" json:"longitude,omitempty"`
|
||||
Latitude int32 `protobuf:"varint,1,opt,name=latitude,proto3" json:"latitude,omitempty"`
|
||||
Longitude int32 `protobuf:"varint,2,opt,name=longitude,proto3" json:"longitude,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Point) Reset() { *m = Point{} }
|
||||
func (m *Point) String() string { return proto.CompactTextString(m) }
|
||||
func (*Point) ProtoMessage() {}
|
||||
func (*Point) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
||||
func (m *Point) Reset() { *m = Point{} }
|
||||
func (m *Point) String() string { return proto.CompactTextString(m) }
|
||||
func (*Point) ProtoMessage() {}
|
||||
func (*Point) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_route_guide_dc79de2de4c66c19, []int{0}
|
||||
}
|
||||
func (m *Point) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Point.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Point.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Point) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Point.Merge(dst, src)
|
||||
}
|
||||
func (m *Point) XXX_Size() int {
|
||||
return xxx_messageInfo_Point.Size(m)
|
||||
}
|
||||
func (m *Point) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Point.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Point proto.InternalMessageInfo
|
||||
|
||||
func (m *Point) GetLatitude() int32 {
|
||||
if m != nil {
|
||||
@ -68,15 +77,37 @@ func (m *Point) GetLongitude() int32 {
|
||||
// points "lo" and "hi".
|
||||
type Rectangle struct {
|
||||
// One corner of the rectangle.
|
||||
Lo *Point `protobuf:"bytes,1,opt,name=lo" json:"lo,omitempty"`
|
||||
Lo *Point `protobuf:"bytes,1,opt,name=lo,proto3" json:"lo,omitempty"`
|
||||
// The other corner of the rectangle.
|
||||
Hi *Point `protobuf:"bytes,2,opt,name=hi" json:"hi,omitempty"`
|
||||
Hi *Point `protobuf:"bytes,2,opt,name=hi,proto3" json:"hi,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Rectangle) Reset() { *m = Rectangle{} }
|
||||
func (m *Rectangle) String() string { return proto.CompactTextString(m) }
|
||||
func (*Rectangle) ProtoMessage() {}
|
||||
func (*Rectangle) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
|
||||
func (m *Rectangle) Reset() { *m = Rectangle{} }
|
||||
func (m *Rectangle) String() string { return proto.CompactTextString(m) }
|
||||
func (*Rectangle) ProtoMessage() {}
|
||||
func (*Rectangle) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_route_guide_dc79de2de4c66c19, []int{1}
|
||||
}
|
||||
func (m *Rectangle) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Rectangle.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Rectangle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Rectangle.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Rectangle) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Rectangle.Merge(dst, src)
|
||||
}
|
||||
func (m *Rectangle) XXX_Size() int {
|
||||
return xxx_messageInfo_Rectangle.Size(m)
|
||||
}
|
||||
func (m *Rectangle) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Rectangle.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Rectangle proto.InternalMessageInfo
|
||||
|
||||
func (m *Rectangle) GetLo() *Point {
|
||||
if m != nil {
|
||||
@ -97,15 +128,37 @@ func (m *Rectangle) GetHi() *Point {
|
||||
// If a feature could not be named, the name is empty.
|
||||
type Feature struct {
|
||||
// The name of the feature.
|
||||
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// The point where the feature is detected.
|
||||
Location *Point `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"`
|
||||
Location *Point `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Feature) Reset() { *m = Feature{} }
|
||||
func (m *Feature) String() string { return proto.CompactTextString(m) }
|
||||
func (*Feature) ProtoMessage() {}
|
||||
func (*Feature) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
|
||||
func (m *Feature) Reset() { *m = Feature{} }
|
||||
func (m *Feature) String() string { return proto.CompactTextString(m) }
|
||||
func (*Feature) ProtoMessage() {}
|
||||
func (*Feature) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_route_guide_dc79de2de4c66c19, []int{2}
|
||||
}
|
||||
func (m *Feature) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Feature.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Feature) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Feature.Merge(dst, src)
|
||||
}
|
||||
func (m *Feature) XXX_Size() int {
|
||||
return xxx_messageInfo_Feature.Size(m)
|
||||
}
|
||||
func (m *Feature) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Feature.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Feature proto.InternalMessageInfo
|
||||
|
||||
func (m *Feature) GetName() string {
|
||||
if m != nil {
|
||||
@ -124,15 +177,37 @@ func (m *Feature) GetLocation() *Point {
|
||||
// A RouteNote is a message sent while at a given point.
|
||||
type RouteNote struct {
|
||||
// The location from which the message is sent.
|
||||
Location *Point `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
|
||||
Location *Point `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
|
||||
// The message to be sent.
|
||||
Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
|
||||
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *RouteNote) Reset() { *m = RouteNote{} }
|
||||
func (m *RouteNote) String() string { return proto.CompactTextString(m) }
|
||||
func (*RouteNote) ProtoMessage() {}
|
||||
func (*RouteNote) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
|
||||
func (m *RouteNote) Reset() { *m = RouteNote{} }
|
||||
func (m *RouteNote) String() string { return proto.CompactTextString(m) }
|
||||
func (*RouteNote) ProtoMessage() {}
|
||||
func (*RouteNote) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_route_guide_dc79de2de4c66c19, []int{3}
|
||||
}
|
||||
func (m *RouteNote) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_RouteNote.Unmarshal(m, b)
|
||||
}
|
||||
func (m *RouteNote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_RouteNote.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *RouteNote) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_RouteNote.Merge(dst, src)
|
||||
}
|
||||
func (m *RouteNote) XXX_Size() int {
|
||||
return xxx_messageInfo_RouteNote.Size(m)
|
||||
}
|
||||
func (m *RouteNote) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_RouteNote.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_RouteNote proto.InternalMessageInfo
|
||||
|
||||
func (m *RouteNote) GetLocation() *Point {
|
||||
if m != nil {
|
||||
@ -155,19 +230,41 @@ func (m *RouteNote) GetMessage() string {
|
||||
// the distance between each point.
|
||||
type RouteSummary struct {
|
||||
// The number of points received.
|
||||
PointCount int32 `protobuf:"varint,1,opt,name=point_count,json=pointCount" json:"point_count,omitempty"`
|
||||
PointCount int32 `protobuf:"varint,1,opt,name=point_count,json=pointCount,proto3" json:"point_count,omitempty"`
|
||||
// The number of known features passed while traversing the route.
|
||||
FeatureCount int32 `protobuf:"varint,2,opt,name=feature_count,json=featureCount" json:"feature_count,omitempty"`
|
||||
FeatureCount int32 `protobuf:"varint,2,opt,name=feature_count,json=featureCount,proto3" json:"feature_count,omitempty"`
|
||||
// The distance covered in metres.
|
||||
Distance int32 `protobuf:"varint,3,opt,name=distance" json:"distance,omitempty"`
|
||||
Distance int32 `protobuf:"varint,3,opt,name=distance,proto3" json:"distance,omitempty"`
|
||||
// The duration of the traversal in seconds.
|
||||
ElapsedTime int32 `protobuf:"varint,4,opt,name=elapsed_time,json=elapsedTime" json:"elapsed_time,omitempty"`
|
||||
ElapsedTime int32 `protobuf:"varint,4,opt,name=elapsed_time,json=elapsedTime,proto3" json:"elapsed_time,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *RouteSummary) Reset() { *m = RouteSummary{} }
|
||||
func (m *RouteSummary) String() string { return proto.CompactTextString(m) }
|
||||
func (*RouteSummary) ProtoMessage() {}
|
||||
func (*RouteSummary) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
|
||||
func (m *RouteSummary) Reset() { *m = RouteSummary{} }
|
||||
func (m *RouteSummary) String() string { return proto.CompactTextString(m) }
|
||||
func (*RouteSummary) ProtoMessage() {}
|
||||
func (*RouteSummary) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_route_guide_dc79de2de4c66c19, []int{4}
|
||||
}
|
||||
func (m *RouteSummary) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_RouteSummary.Unmarshal(m, b)
|
||||
}
|
||||
func (m *RouteSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_RouteSummary.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *RouteSummary) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_RouteSummary.Merge(dst, src)
|
||||
}
|
||||
func (m *RouteSummary) XXX_Size() int {
|
||||
return xxx_messageInfo_RouteSummary.Size(m)
|
||||
}
|
||||
func (m *RouteSummary) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_RouteSummary.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_RouteSummary proto.InternalMessageInfo
|
||||
|
||||
func (m *RouteSummary) GetPointCount() int32 {
|
||||
if m != nil {
|
||||
@ -213,8 +310,9 @@ var _ grpc.ClientConn
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
const _ = grpc.SupportPackageIsVersion4
|
||||
|
||||
// Client API for RouteGuide service
|
||||
|
||||
// RouteGuideClient is the client API for RouteGuide service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
|
||||
type RouteGuideClient interface {
|
||||
// A simple RPC.
|
||||
//
|
||||
@ -252,7 +350,7 @@ func NewRouteGuideClient(cc *grpc.ClientConn) RouteGuideClient {
|
||||
|
||||
func (c *routeGuideClient) GetFeature(ctx context.Context, in *Point, opts ...grpc.CallOption) (*Feature, error) {
|
||||
out := new(Feature)
|
||||
err := grpc.Invoke(ctx, "/routeguide.RouteGuide/GetFeature", in, out, c.cc, opts...)
|
||||
err := c.cc.Invoke(ctx, "/routeguide.RouteGuide/GetFeature", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -260,7 +358,7 @@ func (c *routeGuideClient) GetFeature(ctx context.Context, in *Point, opts ...gr
|
||||
}
|
||||
|
||||
func (c *routeGuideClient) ListFeatures(ctx context.Context, in *Rectangle, opts ...grpc.CallOption) (RouteGuide_ListFeaturesClient, error) {
|
||||
stream, err := grpc.NewClientStream(ctx, &_RouteGuide_serviceDesc.Streams[0], c.cc, "/routeguide.RouteGuide/ListFeatures", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_RouteGuide_serviceDesc.Streams[0], "/routeguide.RouteGuide/ListFeatures", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -292,7 +390,7 @@ func (x *routeGuideListFeaturesClient) Recv() (*Feature, error) {
|
||||
}
|
||||
|
||||
func (c *routeGuideClient) RecordRoute(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RecordRouteClient, error) {
|
||||
stream, err := grpc.NewClientStream(ctx, &_RouteGuide_serviceDesc.Streams[1], c.cc, "/routeguide.RouteGuide/RecordRoute", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_RouteGuide_serviceDesc.Streams[1], "/routeguide.RouteGuide/RecordRoute", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -326,7 +424,7 @@ func (x *routeGuideRecordRouteClient) CloseAndRecv() (*RouteSummary, error) {
|
||||
}
|
||||
|
||||
func (c *routeGuideClient) RouteChat(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RouteChatClient, error) {
|
||||
stream, err := grpc.NewClientStream(ctx, &_RouteGuide_serviceDesc.Streams[2], c.cc, "/routeguide.RouteGuide/RouteChat", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_RouteGuide_serviceDesc.Streams[2], "/routeguide.RouteGuide/RouteChat", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -356,8 +454,7 @@ func (x *routeGuideRouteChatClient) Recv() (*RouteNote, error) {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// Server API for RouteGuide service
|
||||
|
||||
// RouteGuideServer is the server API for RouteGuide service.
|
||||
type RouteGuideServer interface {
|
||||
// A simple RPC.
|
||||
//
|
||||
@ -510,9 +607,9 @@ var _RouteGuide_serviceDesc = grpc.ServiceDesc{
|
||||
Metadata: "route_guide.proto",
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("route_guide.proto", fileDescriptor0) }
|
||||
func init() { proto.RegisterFile("route_guide.proto", fileDescriptor_route_guide_dc79de2de4c66c19) }
|
||||
|
||||
var fileDescriptor0 = []byte{
|
||||
var fileDescriptor_route_guide_dc79de2de4c66c19 = []byte{
|
||||
// 404 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x53, 0xdd, 0xca, 0xd3, 0x40,
|
||||
0x10, 0xfd, 0x36, 0x7e, 0x9f, 0x6d, 0x26, 0x11, 0xe9, 0x88, 0x10, 0xa2, 0xa0, 0x8d, 0x37, 0xbd,
|
||||
|
24
vendor/google.golang.org/grpc/examples/route_guide/server/server.go
generated
vendored
24
vendor/google.golang.org/grpc/examples/route_guide/server/server.go
generated
vendored
@ -167,22 +167,20 @@ func toRadians(num float64) float64 {
|
||||
}
|
||||
|
||||
// calcDistance calculates the distance between two points using the "haversine" formula.
|
||||
// This code was taken from http://www.movable-type.co.uk/scripts/latlong.html.
|
||||
// The formula is based on http://mathforum.org/library/drmath/view/51879.html.
|
||||
func calcDistance(p1 *pb.Point, p2 *pb.Point) int32 {
|
||||
const CordFactor float64 = 1e7
|
||||
const R float64 = float64(6371000) // metres
|
||||
lat1 := float64(p1.Latitude) / CordFactor
|
||||
lat2 := float64(p2.Latitude) / CordFactor
|
||||
lng1 := float64(p1.Longitude) / CordFactor
|
||||
lng2 := float64(p2.Longitude) / CordFactor
|
||||
φ1 := toRadians(lat1)
|
||||
φ2 := toRadians(lat2)
|
||||
Δφ := toRadians(lat2 - lat1)
|
||||
Δλ := toRadians(lng2 - lng1)
|
||||
const R float64 = float64(6371000) // earth radius in metres
|
||||
lat1 := toRadians(float64(p1.Latitude) / CordFactor)
|
||||
lat2 := toRadians(float64(p2.Latitude) / CordFactor)
|
||||
lng1 := toRadians(float64(p1.Longitude) / CordFactor)
|
||||
lng2 := toRadians(float64(p2.Longitude) / CordFactor)
|
||||
dlat := lat2 - lat1
|
||||
dlng := lng2 - lng1
|
||||
|
||||
a := math.Sin(Δφ/2)*math.Sin(Δφ/2) +
|
||||
math.Cos(φ1)*math.Cos(φ2)*
|
||||
math.Sin(Δλ/2)*math.Sin(Δλ/2)
|
||||
a := math.Sin(dlat/2)*math.Sin(dlat/2) +
|
||||
math.Cos(lat1)*math.Cos(lat2)*
|
||||
math.Sin(dlng/2)*math.Sin(dlng/2)
|
||||
c := 2 * math.Atan2(math.Sqrt(a), math.Sqrt(1-a))
|
||||
|
||||
distance := R * c
|
||||
|
Reference in New Issue
Block a user