Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery将XML解析为GMAPSAPI的数组_Javascript_Jquery_Google Maps - Fatal编程技术网

Javascript 使用jQuery将XML解析为GMAPSAPI的数组

Javascript 使用jQuery将XML解析为GMAPSAPI的数组,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我通过使用谷歌地图API创建婚礼网站来自学javascript。我通过docs和CopyIta实验已经了解了很多,但不知道如何做到这一点:我想做的是读取一个包含图标信息(包含图标的sprite图像的名称和偏移量)的外部XML文件,并将其存储在一个数组中,我可以在创建地图标记时访问该数组。例如,我希望能够为接待创建一个标记,并将其指定为图标“party”。以下是迄今为止我用于读取图标文件的代码: jQuery.get("markericons.xml", {}, function(

我通过使用谷歌地图API创建婚礼网站来自学javascript。我通过docs和CopyIta实验已经了解了很多,但不知道如何做到这一点:我想做的是读取一个包含图标信息(包含图标的sprite图像的名称和偏移量)的外部XML文件,并将其存储在一个数组中,我可以在创建地图标记时访问该数组。例如,我希望能够为接待创建一个标记,并将其指定为图标“party”。以下是迄今为止我用于读取图标文件的代码:

        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: ... }