Javascript 使用jQuery将XML解析为GMAPSAPI的数组
我通过使用谷歌地图API创建婚礼网站来自学javascript。我通过docs和CopyIta实验已经了解了很多,但不知道如何做到这一点:我想做的是读取一个包含图标信息(包含图标的sprite图像的名称和偏移量)的外部XML文件,并将其存储在一个数组中,我可以在创建地图标记时访问该数组。例如,我希望能够为接待创建一个标记,并将其指定为图标“party”。以下是迄今为止我用于读取图标文件的代码:Javascript 使用jQuery将XML解析为GMAPSAPI的数组,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我通过使用谷歌地图API创建婚礼网站来自学javascript。我通过docs和CopyIta实验已经了解了很多,但不知道如何做到这一点:我想做的是读取一个包含图标信息(包含图标的sprite图像的名称和偏移量)的外部XML文件,并将其存储在一个数组中,我可以在创建地图标记时访问该数组。例如,我希望能够为接待创建一个标记,并将其指定为图标“party”。以下是迄今为止我用于读取图标文件的代码: jQuery.get("markericons.xml", {}, function(
jQuery.get("markericons.xml", {}, function(data) {
jQuery(data).find("markericon").each(function() {
var icon = jQuery(this);
var name = icon.attr("name");
var url = 'images/icons/mapsprites.png';
var size = new google.maps.Size(32, 37);
var origin = new google.maps.Point(parseInt(icon.attr("x")),parseInt(icon.attr("y")));
var anchor = new google.maps.Point((origin.x+16),origin.y);
var icon = new google.maps.MarkerImage(url, size, origin, anchor);
});
}); // how to store this in an array so that I can access elements by name later?
然后,当在谷歌地图上创建实际的地点标记时,如下所示:
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: icon.name=="party", // pseudo-code... how to do this?
title: title
});
我还是一个编程高手,所以我非常感谢你的帮助。谢谢 您应该使用GIcon:
示例如何使用它:
您应该在
.each()
或.get()
方法之外有一个JSON对象,这取决于您希望它的可访问性(我猜是在.get()
之外,所以我们将在本例中使用它),然后从.each()
中的变量中创建一个JSON对象
现在,您可以按名称访问您的谷歌地图:
// for this purpose, let's say `name` is "reception":
console.log(storage.reception)
// => prints out { url: ..., size: ..., origin: ..., anchor: ..., icon: ... }
另外,在您的原始JS中,您已经声明了两次
图标
,因此我不太确定您想用它做什么;google.maps.MarkerImage取代了GIcon。不过谢谢。我想我能做到,谢谢!顺便说一句,我认为它被声明了两次,因为第一次,它保存了我用来获取属性的XML节点。第二次我重新定义它来保存google.maps.MarkerImage对象。在我抄袭的例子中没有清楚地解释…没问题。可能需要考虑改变变量名并使它们独一无二。如果没有多次使用第一个图标
,也可以这样做:var name=jQueryr(this.attr('name')代码>
// for this purpose, let's say `name` is "reception":
console.log(storage.reception)
// => prints out { url: ..., size: ..., origin: ..., anchor: ..., icon: ... }