Попытка найти расстояние между двумя объектами LatLng с помощью googlemaps api и javascript - PullRequest
2 голосов
/ 18 марта 2011

Привет! Я играю с html5 геолокацией и использую объект navigator.geolocation.getCurrentPosition (success, fail), чтобы получить позицию пользователя.

В функции успеха я затем создал переменную под названием координаты для хранения координат и переменную координаты2 для хранения других координат, которые я составил.

 var coords = new google.maps.LatLng(position.coords.latitude position.coords.longitude); 
 var coords2 = new google.maps.LatLng(55.8619788, -4.2867578);

Используя следующий код, я позиционирую дваточки на карте в виде маркеров:

 var mapOptions = {

                zoom: 16,
                center: coords,
                mapTypeControl: false,
                navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
                mapTypeId: google.maps.MapTypeId.ROADMAP,

        };


 map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);  


 var marker = new google.maps.Marker({
                position: coords,
                map: map,
                title: "Your current location!"
        });


 var marker2 = new google.maps.Marker({
                position: coords2,
                map: map,
                title: "Nearest Person!"
        });

То, что я тогда хочу сделать, это определить расстояние между этими точками.Кажется, я не могу найти метод, который делает это.

Вот что я пытаюсь:

  var distance = computeDistanceBetween(coords, coords2);
  alert(distance);

Любая идея, что я делаю не так?Пол

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

В новой библиотеке геометрии V3

есть computeDistanceBetween ()
3 голосов
/ 18 марта 2011

В v2 вы можете сделать

coords.distanceFrom(coords2);

Это задокументировано на http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng

Редактировать : Я думаю, вы можете использовать v3. Если это так, я думаю, вам понадобится полное пространство имен:

переменная дистанция = google.maps.geometry.spherical.computeDistanceBetween (Coords, coords2);

2 голосов
/ 03 апреля 2011

Библиотека google.maps.geometry не загружается по умолчанию. Вы также должны явно указать, чтобы загрузить его, в запросе начальной загрузки:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=true_or_false"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...