php – 搜索地址与google maps api v3上最近的现有地标之间的距离

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 搜索地址与google maps api v3上最近的现有地标之间的距离脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个包含GOOGLE Maps API v3的网页.我目前有一个功能图和搜索栏.我需要能够在地图上的某个KML文件显示搜索地址到最近地标的距离.我怎样才能做到一点

这是页面代码

<script tyPE="text/javascript">
    VAR geocoder;
    var map; 
    var marker;
    var layers = [];
  function inITialize() {
    geocoder = new google.maps.Geocoder ();
    var latlng = new google.maps.LatLng (41,-73.4);
    var myOptions = {
      zoom: 7,center: latlng,mapTypeid: google.maps.MapTypeId.ROADMAP
        }
      map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
      marker = new google.maps.Marker({map:map});


        layers[0] = new google.maps.KmlLayer('http://dl.dropBox.COM/u/80233620/South-and-North-County-trailway.kml',{PReserveViewport: true});
        layers[1] = new google.maps.KmlLayer('http://www.nyc.gov/html/dot/downloads/misc/cityracks.kml',{preserveViewport: true});
        layers[2] = new google.maps.KmlLayer('http://dl.dropBox.com/u/80233620/NWS%20Radar%20Images.kmz',{preserveViewport: true});
    for (var i = 0; i < layers.length; i++) {
                layers[i].setMap(map);
              }
        }

    function codeAddress () {
        var address = document.getElementById ("address").value;
        geocoder.geocode ( { 'address': address},function(results,status)  {
        if (status == google.maps.GeocoderStatus.OK)  {
            map.setCenter(results [0].geometry.location);
            marker.setPosition(results [0].geometry.location);
            map.setZoom(14);
            } 
        else {
            alert("Geocode was not successful for the following reason: " + status);
                }
        }); 
                            }
    function toggleLayer(i) {
      if(layers[i].getMap() === null) {
        layers[i].setMap(map);
      }
      else {
        layers[i].setMap(null);}
    }

</script>

解决方法

您无法像这样访问KML图层中的数据

https://developers.google.com/maps/documentation/javascript/layers#KMLLayers

相反,您可以处理XML并手动添加@L_406_14@,然后使用geometry library和computeDistanceBetween()来获取距离.我通常将距离乘以某个数来考虑转弯(距离公式得到直线距离).我相信大约1.2是最准确的.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 搜索地址与google maps api v3上最近的现有地标之间的距离全部内容,希望文章能够帮你解决php – 搜索地址与google maps api v3上最近的现有地标之间的距离所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。