Javascript 在kml URL数组上使用geoxml3解析器自定义标记图标

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文件数组和对解析器进

我们可以学习如何为使用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的图标)