Javascript 在kml URL数组上使用geoxml3解析器自定义标记图标
我们可以学习如何为使用geoxml3()解析的kml文件定制标记图标 代码:Javascript 在kml URL数组上使用geoxml3解析器自定义标记图标,javascript,google-maps-api-3,geoxml3,Javascript,Google Maps Api 3,Geoxml3,我们可以学习如何为使用geoxml3()解析的kml文件定制标记图标 代码: var myparser = new geoXML3.parser({ map: map, markerOptions: { icon: "http://maps.google.com/mapfiles/ms/micons/blue.png" } }); 但是,我希望在解析多个kml文件时,通过将kml URL数组传递给geoxml3解析器来提高代码的效率。下面是一个使用kml文件数组和对解析器进
var myparser = new geoXML3.parser({
map: map,
markerOptions: {
icon: "http://maps.google.com/mapfiles/ms/micons/blue.png"
}
});
但是,我希望在解析多个kml文件时,通过将kml URL数组传递给geoxml3解析器来提高代码的效率。下面是一个使用kml文件数组和对解析器进行一次调用的示例:
var urlArray =[];
urlArray.push("pathto/data1.xml");
urlArray.push("pathto/data2.xml");
var myParser = new geoXML3.parser({
map: map,
processStyles: true,
zoom:false,
markerOptions: {
icon: {
url: "pathTo/icon.png", // url
scaledSize: new google.maps.Size(48, 48) // scaled size
}
},
afterParse: useTheData
});
myParser.parse(urlArray);
}
这会将解析的每个kml文件的所有选项设置为相同。问题:
(1) 以这种方式使用geoxml3解析器将创建一个docs[]数组,这样我就可以使用myParser.docs[0]
和myParser.docs[1]
访问每个kml文件的解析结果,对吗?这就是我想要的“效率”
(2) 如何将解析的每个kml文件的标记图标唯一地设置为具有不同属性(如大小)的不同唯一图标?为每个文件创建GeoXml3解析器的新实例,在构造函数中指定所需的标记图标
用于文件的图标在下面的数组中定义。因为您需要创建解析器的新实例来更改图标,所以不能将URL数组传递给解析器并更改该数组中每个URL的图标
var icons = ["http://maps.google.com/mapfiles/ms/micons/blue.png",
"http://maps.google.com/mapfiles/ms/micons/green.png",
"http://maps.google.com/mapfiles/ms/micons/yellow.png",
"http://maps.google.com/mapfiles/ms/micons/orange.png"];
function displayKml() {
var inputs = document.getElementsByClassName('kmlfile');
for (var i=0; i<inputs.length;i++) {
geo = new geoXML3.parser({
map: map,
zoom: true,
singleInfoWindow: true,
markerOptions: {
icon: icons[i]
}
});
geo.parse(inputs[i].value);
}
}
这非常有帮助,接近我的需要,非常感谢我在原始问题中提供的信息非常少。我对问题进行了编辑,以更详细地说明我在寻找什么(特别是如何为每个图标设置唯一属性)。用于文件的图标在我的答案中的数组中定义。您需要创建一个新的解析器实例来更改图标(因此您不能将URL数组传递给解析器并更改每个URL的图标)