You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ajax调用生成Google Maps所需的嵌套数组?

问题解决:构建符合Google Maps API要求的嵌套数组

你的核心问题是把每个工匠的信息拼接成了字符串,而非真正的数组元素。当你将字符串推入tradies数组后,JSON.stringify会自动为每个字符串添加引号,导致格式不符合Google Maps API的要求。

修正后的代码

function getNearbyTradies(oArg){
   var lat = oArg.lat || "";
   var lng = oArg.lng || "";
   var tradies = [];
   $.getJSON("cfcs/user.cfc?method=getNearbyUsers&returnformat=json&queryformat=column",
      {"lat":lat,"lng":lng},function(res,code){
      if(res.ROWCOUNT > 0){
         for (var i = 0; i < res.ROWCOUNT; i++) {
            var company_name = res.DATA.COMPANY_NAME[i];
            // 接口返回的经纬度/ID可能是字符串,转成对应类型匹配Google示例格式
            var tradieLat = parseFloat(res.DATA.LAT[i]);
            var tradieLng = parseFloat(res.DATA.LNG[i]);
            var trade_id = parseInt(res.DATA.TRADIE_ID[i], 10);
            // 直接创建数组,而非拼接字符串
            var oTradie = [company_name, tradieLat, tradieLng, trade_id];
            tradies.push(oTradie);
         };
         var str = JSON.stringify(tradies, null, 4);
         alert(str); // 此时输出格式与Google示例完全一致
      };
   });
};

关键修改点

  1. 替换字符串拼接为数组创建:不再用引号拼接成字符串形式,而是直接创建包含四个元素的数组[company_name, tradieLat, tradieLng, trade_id],这才是Google Maps API需要的嵌套数组结构。
  2. 数据类型转换:将接口返回的字符串类型经纬度转为浮点数,工匠ID转为整数,确保和示例中的数据类型(字符串+数字组合)完全匹配。

修正后的输出示例

[
    ["Pan Plumbing Ltd", -36.9716195, 174.8620086, 120],
    ["Seal Plumbing", -36.9716195, 174.8620086, 121]
]

该格式可直接用于Google Maps API的地图标记渲染。

内容的提问来源于stack exchange,提问作者user460114

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:55:17