2

我想从 ESRI 几何中提取经度和纬度,并将它们连接成一个长字符串(用于 API 调用)。

我正在努力实现这一目标

几何的 ESRI 文档(geometry specs)显示了对象的结构,但我的 API 调用需要以下格式的纬度/经度:

long1,lat1,long2,lat2,long3,lat3 ...  long1, lat1

我所要做的就是稍微处理一下long/lats。从 ESRI 文档中制作一个非常简单的示例

        MyTest = {
                    "rings": [
                        [
                            [-97.06138, 32.837],
                            [-97.06133, 32.836],
                            [-97.06124, 32.834],
                            [-97.06127, 32.832],
                            [-97.06138, 32.837]
                        ]
                    ],
                    "spatialReference": {
                        "wkid": 4326
                    }
                };

        alert(JSON.stringify(MyTest.rings[0]));

会给我戒指(经度/纬度)(注意第一个经度/纬度重复为最后一个经度/纬度)

我似乎无法弄清楚如何去掉 [ 和 ] 来创建一个只有经度和纬度的字符串。例如:

myTest2 = MyTest.rings[0];  // get the longitudes and latitudes
myTest3 = JSON.stringify(myTest2);
myTest4 = myTest3.replace("[","");

alert(JSON.stringify(myTest2));

alert(JSON.stringify(myTest4));

替换将去掉一个括号,但我不能让它像这个post stack javascript replace那样进行全局替换,因为我的编程环境都在ColdFusion中,我需要模式周围的引号。

有人可以指出我的错误吗?谢谢 !

4

4 回答 4

2

您可以使用join()尝试这个(示例) :

MyTest = { "rings": [...] };
var str = MyTest.rings.join();

结果(in str)将是:

-97.06138,32.837,-97.06133,32.836,-97.06124,32.834,-97.06127,32.832,-97.06138,32.837

于 2014-06-16T22:37:29.350 回答
1

你有一个对象,使用它——不要玩字符串化的版本。

var coords = MyTest.rings[0];
var list = [];

for ( var i = 0; i < coords.length; ++i )
  {
    list.push(coords[i][0]);
    list.push(coords[i][1]);
  }

var str = list.join(',');

// str is now "-97.06138,32.837,-97.06133...(etc.)"
于 2014-06-16T22:37:28.100 回答
0

演示:http: //jsfiddle.net/gunderjt/B5wsK/2/

MyTest.rings[0].join()

并加入无参数自动用逗号描述

于 2014-06-16T22:41:46.090 回答
0

这些是绝对基础,但您不需要更换任何东西。[]只是一个 JavaScript 数组而不是字符串。

MyTest.rings.map(function (r) { return r.join(','); }).join(',');
// "-97.06138,32.837,-97.06133,32.836,-97.06124,32.834,-97.06127,32.832,-97.06138,32.837"

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /数组/加入

于 2014-06-16T22:37:29.313 回答