在javascript中查找中间经度和纬度

时间:2015-02-15 08:10:21

标签: javascript google-maps cordova

我有以下数据。 1.source名称。 2.目的地名称。 我需要在从源到目的地的路径上找到lat-long对。是否有谷歌Api可用?我提到这些问题Finding intermediate Lattitude Longitude between two given points但是无法理解整个问题。任何人都可以对此有更简单的答案吗?

修改 这是我的尝试

 //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*/
    }

我需要帮助来获得中间位置。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:1)

您必须先了解它是Mathematical problem,但很简单。谷歌将返回一组XY点......程序是:

  1. 正确表达“参考点” S D S 源和 D estination点。所以 Sx,Sy,Dx,Dy 。它们不是“名称”,是XY代号(!)。

  2. 查看如何向Google-API说明您需要多少积分

  3. 将您的查询提交给Google-API:编辑您的问题以向我们展示您的查询(Javascript代码)!我们可以在此讨论这些问题。


  4. 你需要表达

    {path[]: LatLngPathes, samples: 4}
    

    获取LatLngPathes的Javascript片段示例:

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