我有一个KML文件,其中包含从应用程序输出的一些多边形(不确定是哪个多边形)。当我尝试加载xml时,它似乎加载得很好,但不返回任何placemarks,只是一个空数组。
链接到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 );
}
};当我记录placemark对象时,我只需要在控制台中得到[]。文件有问题吗?
我已将以下内容添加到我的.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);
}
});
};发布于 2013-10-02 14:10:27
您需要使用来自polys分支或kmz分支的geoxml3。树干很旧,不支持多边形。
使用polys分支处理KML的示例
使用kmz分支的KML工作示例
https://stackoverflow.com/questions/19121428
复制相似问题