1

我有一个 KML 文件,其中包含一些从应用程序输出的多边形(不确定是哪一个)。当我尝试加载 xml 时,它似乎加载正常但不返回任何地标,只是一个空数组。

链接到 KML 文件

我已将 JS 简化为仅用于测试以下内容:

var map = new google.maps.Map(document.getElementById('gmap'), {
  center: new google.maps.LatLng(51.503355, -0.127564),
  zoom: 12,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var geoxml = new geoXML3.parser({ 
  map : map, 
  singleInfoWindow : false,
  afterParse: useTheData 
});
geoxml.parse('placemarks.kml');

function useTheData(doc) {
  console.log(doc[0].placemarks);
  for (var i = 0; i < doc[0].placemarks.length; i++) {
    console.log( doc[0].placemarks[i].name );
  }
};

当我记录地标对象时,我只是在控制台中得到 [] 。文件错了吗?

我已将以下内容添加到我的 .htaccess

AddType application/vnd.google-earth.kml+xml .kml

并将 GeoXML.fetchXML 替换为以下内容(因为我得到“无法检索 placemarks.kml”)

geoXML3.fetchXML = function (url, callback) {
  function timeoutHandler() {
    callback();
  };
  $.ajax({
      type:       "GET",
      cache:      false,      
      url: url,
      success: function(xml) {
          callback(xml);
      }
  });
};
4

1 回答 1

2

您需要使用polys分支或 kmz 分支中的 geoxml3。树干很旧,不支持多边形。

使用 polys 分支的 KML 工作示例

使用 kmz 分支的 KML 工作示例

于 2013-10-02T14:10:27.307 回答