2015-02-15 2 views
2

У меня следующие данные. 1.source имя. 2.определение имя. Мне нужно найти пары lat-long на пути от источника к пункту назначения. Там есть какой-нибудь доступный для Google Api? Я ответил на эти вопросы Finding intermediate Lattitude Longitude between two given points, но не могу понять все это. Может ли кто-нибудь попросить об этом проще?Поиск промежуточной широты и долготы в javascript

EDIT вот что я пытался

//store lat and long 
    var sd_array=[]; 
     $('#processbtn').click(function(e){ 
    //get source and destination name  
       var source=$('#source').val(); 
       var destination=$('#destination').val(); 
       if(source==''||destination==''){ 
        alert("all fields required"); 
       }else{ 
        //decode lat-long from address 
        getLatitudeAndLongitude(source); 
        getLatitudeAndLongitude(destination); 
       } 
      }); 
     function getLatitudeAndLongitude(address){ 
      var geocoder = new google.maps.Geocoder(); 
      geocoder.geocode({ 'address': address}, function(results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
       var latitude = results[0].geometry.location.lat(); 
       var longitude = results[0].geometry.location.lng(); 
       //store to array 
       sd_array.push(latitude); 
       sd_array.push(longitude); 
       } 
      }); 
     } 
    function getInterMediateLatLong(sd_array){ 
     //get intermediate locations 
     /*sd_array[0] source lat 
     sd_array[1] source long 
     sd_array[2] destination lat 
     sd_array[3] destination long*/ 
    } 

мне нужна помощь, чтобы добиться получения промежуточных мест.

+0

Сколько "промежуточные пункты" вам нужно, только один? Что вы не понимаете в [Руководстве] (https://developers.google.com/maps/documentation/directions/)? Это типичная проблема [XY plane] (https://en.wikipedia.org/wiki/Cartesian_coordinate_system), у вас есть точки A, B и требуется набор точек между ними. –

+0

От 3 до 5 пар, также я новичок в API-интерфейсе google map –

ответ

1

Поскольку тип, лежащий в основе каждого из lat и lon, является реальным (AKA double или float), просто добавьте переменную источника и конечной точки и разделите каждый результат на 2.0.

var mid_lat = (lat_source + lat_dest)/2.0 ; 
var mid_lon = (lon_source + lon_dest)/2.0 ; 

Тогда координаты средней точки - mid_lat, mid_lon.

+0

Я не понимаю, что вы имеете в виду –

1

Сначала вы должны понять, что это Mathematical problem, но прост. Google будет возвращать набор уплотнительных точек XY ... Процедура:

  1. Экспресс правильно "опорные точки" S и D, то S Ource и D estination точек. Таким образом, Sx, Sy, Dx, Dy. Они не являются «именами», являются XY coodenates (!).

  2. Проверьте, как сказать Google-API, сколько очков вам нужно

  3. отправить запрос в Google-API: Редактировать ваш вопрос, чтобы показать свой запрос (Javascript код) для нас! их можно обсудить здесь.


Вы должны выразить

{path[]: LatLngPathes, samples: 4} 

Javascript пример фрагмента для получения LatLngPathes:

var source = new google.maps.LatLng(36.578581, -118.291994); 
var destination = new google.maps.LatLng(36.606111, -118.062778); 
+0

Спасибо за подробный answer.let, я попробую его –

+0

Сэр Я редактировал свой вопрос, пожалуйста, взгляните на это –