// Copyright 2016 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package vision import ( pb "google.golang.org/genproto/googleapis/cloud/vision/v1" llpb "google.golang.org/genproto/googleapis/type/latlng" ) // A LatLng is a point on the Earth's surface, represented with a latitude and longitude. type LatLng struct { // Lat is the latitude in degrees. It must be in the range [-90.0, +90.0]. Lat float64 // Lng is the longitude in degrees. It must be in the range [-180.0, +180.0]. Lng float64 } func (l LatLng) toProto() *llpb.LatLng { return &llpb.LatLng{ Latitude: l.Lat, Longitude: l.Lng, } } func latLngFromProto(ll *llpb.LatLng) LatLng { return LatLng{ Lat: ll.Latitude, Lng: ll.Longitude, } } // A LatLngRect is a rectangular area on the Earth's surface, represented by a // minimum and maximum latitude and longitude. type LatLngRect struct { Min, Max LatLng } func (r *LatLngRect) toProto() *pb.LatLongRect { if r == nil { return nil } return &pb.LatLongRect{ MinLatLng: r.Min.toProto(), MaxLatLng: r.Max.toProto(), } }