【问题标题】:Jquery ajax populating a multi dimensional array feeding to a Google mapJquery ajax 填充多维数组馈送到谷歌地图
【发布时间】:2014-03-26 16:55:04
【问题描述】:

我有一个运行良好的 jquery ajax 方法,它填充谷歌地图 latlngs 的数组 (points[]),然后对其进行迭代以在地图上绘制它们。我还填充了第二个数组 (details[]) 以获取我在生成标记时也使用的链接。

这是 Jquery 的一部分 ajax 代码

 success: function (data) {
            for (var i = 0; i < data.length; i++) {
                var latlng = new google.maps.LatLng(data[i].lat, data[i].long);
                points.push(latlng);            
                details.push(data[i].PageLink);                  
            }
            addMarkers();
        }

然后我通过遍历点数组中的所有项目来创建标记:

  for (var i = 0; i < points.length; i++) {

            var marker = new MarkerWithLabel({
                map: map,
                position: points[i],
                icon: icon,
                url: details[i],
                labelAnchor: new google.maps.Point(12, -5),
                labelClass: "labels"                    
            });

我想将 points[] 制作成一个多维数组,这样我就可以在其中包含 LAT/LNG 以及更多信息,例如链接,也许还有标题。理想情况下,我希望将所有这些都放入这个数组中,但语法对我不起作用。

我尝试过以下变体:

points[0].push(latlng);
points[1].push(data[i].PageLink);

但是当尝试将这些值分配给标记时,我做错了,大概是在我的语法中,因为我无法从数组中取回任何值。在如何填充数组方面,我是否正确?如果是,我该如何取回该数据?

【问题讨论】:

  • 具有 lat、long 和其他属性的对象呢?
  • 好吧,我想我需要 latlng 是 google.maps.LatLng 对象,否则清除地图点的方法不起作用。但是,假设这是错误的,我该怎么做呢?
  • 行得通!可爱,我以前从未真正使用过 Javascript 对象。谢谢

标签: jquery google-maps multidimensional-array


【解决方案1】:

感谢 Raphaël Althaus,他让我想到了使用 javascript 对象的想法,我通过避免使用多维数组来解决这个问题。

我创建了一个新的 javascript 对象并为其分配了各种元素,这一切都完美无缺。

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2016-09-21
    • 2016-10-17
    • 2016-03-30
    相关资源
    最近更新 更多