Получение расстояния между двумя точками более одного раза - PullRequest
2 голосов
/ 11 марта 2012

Мне пришлось отремонтировать старый проект, касающийся карт Google, так что это в V2. В моей базе данных у меня уже был список всех пользователей в моей базе данных. Затем существуют определенные события, которые система может создать (например, событие пожара). Теперь система должна иметь возможность вычислить расстояние всех пользователей от пожара и составить список всех людей на основе их расстояния от зоны. Как я могу это сделать? Аргумент fromAddress должен быть массивом значений, заданных людьми, а адрес toaddress - значением события. Логика должна быть похожа на код ниже

for(i=0;i<fromAddress.length;i++){
    gdir.load("from: " + fromAddress[i] + " to: " + toAddress,  { "locale": "en" });
    distance = Math.round((gdir.getDistance().meters / 1000)*10)/10;
    duration = Math.round(gdir.getDuration().seconds/60);
    //store distance and duration for output
}

Спасибо! * * 1004

1 Ответ

1 голос
/ 12 марта 2012

Существуют различные варианты:

  1. Если расстояние не должно основываться на маршруте, вам не нужны никакие запросы, вы можете рассчитать расстояние, используя google.maps.geometry.spherical.computeDistanceBetween ()
    В v2 используйте distanceFrom
  2. запросите directionResult для каждого источника /пара назначения
    (V2: getDistance () )
  3. запрашивает DistanceMatrixResult , что позволяет получить до 25 результатовс 1 запросом
    (Это не доступно в V2, но вы можете запросить веб-сервис: http://code.google.com/intl/en/apis/maps/documentation/distancematrix/)
...