【问题标题】:How to create a google map with kml layer overlay dynamically如何动态创建具有 kml 图层叠加的谷歌地图
【发布时间】:2012-02-10 09:50:51
【问题描述】:
function initialize() {
    var myOptions = {
      center: new google.maps.LatLng(23.71181,90.407467),
      zoom: 8,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
    var map_coverage = new google.maps.KmlLayer('http://mydomain.com/myfile.kmz'  );
    map_coverage.setMap(map);       
    map.setZoom(12);
    map.setCenter(dhaka_latlng);    
  }

上面的代码使用 kmllayer 输出以下地图,并且 kml 文件已使用 Google 地球创建并保存为服务器上的 kmz(压缩)文件。该文件包含一些 xml 数据,彩色区域代表标签中的一些坐标以及其他标签,如

<coordinates>
    90.27401489730001,23.9502580159,0 90.2740186914,23.95007761100001 ... so on
</coordinates>

我想使用 javascript api-v3 与 kmllayer 动态创建一个类似的地图,但没有 Google 地球的帮助。我的意思是我想使用 php 创建 kml 文件并将其作为 somefile.kmz 保存在服务器上。那可能吗 ?任何形式的帮助将不胜感激。谢谢!

如果您需要,我可以发布原始的 kml 文件,但它太大了

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

    是的,可以在服务器端 (PHP) 生成一个新的 KML 文件,然后使用 生成 KML 内容的 URL 告诉 JavaScript 加载一个新的 KmlLayer。请注意,KML URL:

    • 必须可公开访问,因为 Google 服务器需要下载它
    • 将由 Google 服务器缓存,在同一 URL 提供不同内容不会刷新它

    要克服这种缓存,只需在 URL 中添加一些随机的杂音。但是,请注意缓存可以使其快速。您不能同时拥有“超快速 KML”和“实时新鲜数据”。另外,请留意您自己的服务器对 KML URL 的响应时间,越快越好。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2012-04-19
    • 2017-08-10
    • 1970-01-01
    • 2019-08-06
    • 2012-05-24
    • 1970-01-01
    相关资源
    最近更新 更多