Google размещает API закрывает супермаркет - PullRequest
0 голосов
/ 12 октября 2018

Я знаю, что могу найти закрытые супермаркеты с Google API, как это:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.360229, 6.042169&radius=3000&type=supermarket&key=myKey

Но теперь я получаю много результатов.Как мне получить только самый близкий?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете использовать опцию rankby с параметром distance

var request = {
  location: gps,
  types: ['grocery'],
  rankBy: google.maps.places.RankBy.DISTANCE, 
  key: key 
};

ссылка: https://developers.google.com/places/web-service/search

, если у вас есть несколько мест, используйте haversine formula, чтобы получить расстояние между двумяместоположения.

 function distance(p1, p2) {
      if (!p1 || !p2) 
       return 0;
      var R = 6371000; // Radius of the Earth in m
      var dLat = (p2.lat() - p1.lat()) * Math.PI / 180;
      var dLon = (p2.lng() - p1.lng()) * Math.PI / 180;
      var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
      Math.cos(p1.lat() * Math.PI / 180) * Math.cos(p2.lat() * Math.PI / 180) *
      Math.sin(dLon / 2) * Math.sin(dLon / 2);
      var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
      var d = R * c;
      return d;
     }

ссылка: https://www.movable -type.co.uk / scripts / latlong.html

...