2015-04-11 3 views
0

У меня есть набор lat/long, которые хранятся в базе данных, и я должен найти все lat/long из базы данных, которые лежат между данными lat/long (например, latitude = 37.4224764,and longitude=-122.0842499) и учитывая радиус (скажем, 5miles) .Для этого мне нужно сделать некоторые сложение и вычитание, как:Найти все lat/long под определенным радиусом

37.4224764 + 5mile 37.4224764 - 5mile и

-122.0842499+5mile -122.0842499-5mile Но я не знаю, как преобразование работает здесь.

+0

возможно дубликат [Как я знаю, если Lat, ДЛН точка содержащиеся в круге?] (http://stackoverflow.com/questions/4463907/how-do-i-know-if-a-lat-lng-point-is-contained-within-a-circle) – duncan

+0

Посмотрите это answer http://stackoverflow.com/questions/25478006/how-to-get-the-nearest-100-points-from-one-million-data-records-quickly/25813558#25813558 –

ответ

0

Вы немного расплывчаты в своих требованиях, просто хотите узнать координаты точки на некотором расстоянии от вашего текущего местоположения в данном направлении? Или получить круг радиуса определенного расстояния вокруг ваших координат? Или нарисуйте линию определенной длины от ваших координат до другой точки на определенном расстоянии?

Я предполагаю, что вы, вероятно, захотите использовать Geometry spherical library, например.

var latLng = new google.maps.LatLng(geometry.location.lat, geometry.location.lng); 

var newLatLng = google.maps.geometry.spherical.computeOffset(
    latLng, 
    1000, 
    0 
); 

смотри также https://developers.google.com/maps/documentation/javascript/geometry#Distance

PS: вам нужно добавить параметр библиотеки геометрии при загрузке карты:

<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=geometry"></script> 
+0

Извините за неопределенность в вопросе, я его обновил. – Abs

Смежные вопросы