Google maps api 3 使用航路点LatLng的谷歌地图API

Google maps api 3 使用航路点LatLng的谷歌地图API,google-maps-api-3,Google Maps Api 3,我使用以下方法获得一组航路点: var waypoints = displayer.getDirections().routes[0].legs[0].via_waypoints; 这将返回一个用括号格式化的坐标数组,如37.09024,-95.71289,37.09324,-95.71259 当我尝试沿新路线插入这些坐标作为航路点时,它会中断。我需要做些什么来解析这个数组,并在lat/lng值周围获得没有括号的坐标 谢谢 仅显示LatLng对象的一个构造函数 因此,如果您只是简单地将一个字符

我使用以下方法获得一组航路点:

var waypoints = displayer.getDirections().routes[0].legs[0].via_waypoints;
这将返回一个用括号格式化的坐标数组,如37.09024,-95.71289,37.09324,-95.71259

当我尝试沿新路线插入这些坐标作为航路点时,它会中断。我需要做些什么来解析这个数组,并在lat/lng值周围获得没有括号的坐标

谢谢

仅显示LatLng对象的一个构造函数

因此,如果您只是简单地将一个字符串(如37.09024,-9571289)或一个字符串数组传递给LatLng构造函数,那么就不能指望它神奇地将该参数转换为坐标

可以将管线坐标存储在二维阵列中

var Points = [
    [11.2222, 22.3333],
    [33.4444, 44.5555]
    ];
并通过传递Points数组的每个内部元素,在for循环中构造新的google.maps.LatLngx,y对象


您还可以使用Mozilla Firefox扩展在运行时调试JavaScript

由于.via_waypoints返回一个LatLng坐标,将其转换为字符串会给它加上括号

我能找到的唯一解决方法是在将数组连接成字符串后,使用正则表达式去掉围绕坐标的括号

每次创建新航路点时,我都会将其添加到字符串中,然后更新航路点坐标的隐藏输入


然后将数据保存到数据库中,当地图再次加载时,我将坐标字符串拉回到数组中,并将其解析为地图的航路点值。

您可以使用lat和lng方法,例如:

设纬度=event.latLng.lat


有关详细信息,请参见此答案

.via_航路点会自动返回括号中的纬度/液化天然气坐标,因此如果我尝试将它们存储在第二个数组中,会不会是这样:var Points=[[lat,lng],[lat,lng]]@是的,会的。如果可以,您可以更改.via_waypoints属性以返回一个latlng数组。或者,您可以实现一些其他方法,该方法读取.via_航路点和其他类似内容,并实例化LatLng对象以呈现它们。你可以把它称为你的渲染处理器。去掉括号的正则表达式似乎有点麻烦。您是否有更好的建议来实例化LatLng数组?谢谢您的帮助。@HWD为什么必须以字符串形式返回这些值?数据应以原始格式保存,以便在将来的调用中使用,并在呈现给客户时使用括号/etc进行格式化。以非常格式化的形式保存数据毫无意义。这只是一种方式。via_航路点正在返回数据。是否有办法将其作为原始lat/lng坐标返回?
var Points = [
    [11.2222, 22.3333],
    [33.4444, 44.5555]
    ];
..
ContstructedLatLng[i] = new google.maps.LatLng(Points[i][0],Points[i][2]);
..