谷歌地图加载路线
Google Maps Load Route
我有一条以下字符串形式的谷歌地图路线
NewRoute = '{"start":{"lat":51.5479454,"lng":-0.04057739999996102},"end":{"lat":51.5166787,"lng":-0.0596227999999428},"waypoints":[[51.5474343,-0.07557889999998224]]}';
我想加载到地图上。如何将字符串 NewRoute 转换为数组操作系统,以便可以在以下函数中使用?
function showRoute(oViewMapButton)
{
ButtonName = oViewMapButton.name;
if(ButtonName.length == 13){
var RouteName = "strWayPoints_r" + ButtonName.slice(-1);
var DistanceName = "strDistance_r" + ButtonName.slice(-1);
}else{
var RouteName = "strWayPoints_r" + ButtonName.slice(-2);
var DistanceName = "strDistance_r" + ButtonName.slice(-2);
}
oRoute = document.getElementById(RouteName);
var NewRoute = oRoute.value;
var os = [];
os = NewRoute;
var wp = [];
for(var i=0;i<os.waypoints.length;i++)
wp[i] = {'location': new google.maps.LatLng(os.waypoints[i][0], os.waypoints[i][1]),'stopover':false }
$( "#hid_FieldName3" ).val(DistanceName);
$( "#map-form" ).dialog( "open" );
var request = {
origin:new google.maps.LatLng(os.start.lat,os.start.lng),
destination:new google.maps.LatLng(os.end.lat,os.end.lng),
waypoints: wp,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
} else {
alert("There was an unknown error in your request. Requeststatus: 'n'n"+status);
}
});
}
假设 JSON 是具有 RouteName id 的元素的值,只需修改以下行:
var NewRoute = oRoute.value;
自:
var NewRoute = JSON.parse(oRoute.value);
你是怎么得到那个字符串的?它看起来像一个javascript对象。如果你分配它而不带外引号,你将得到一个对象,可以像这样使用它:
var route = {
"start": {"lat": 51.5479454, "lng": -0.04057739999996102},
"end": {"lat": 51.5166787, "lng": -0.0596227999999428},
"waypoints": [[51.5474343, -0.07557889999998224]]
};
route.start
route.start.lat
route.waypoints[0][1]
etc.
关于 JavaScript 对象:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
你可以
试试这个(只需将json
转换为对象)
var NewRoute = '{"start":{"lat":51.5479454,"lng":-0.04057739999996102},"end":{"lat":51.5166787,"lng":-0.0596227999999428},"waypoints":[[51.5474343,-0.07557889999998224]]}';
var os = JSON.parse(NewRoute);
所以,现在你可以在你的函数中像os.start.lat
或os.waypoints.length
一样使用它。
在您的函数中,替换以下行
var NewRoute = oRoute.value;
带以下行
var NewRoute = JSON.parse(oRoute.value);
就是这样。
相关文章:
- 标记的实时更新,无需加载页面谷歌地图API V3
- 将组合JSON文件加载到谷歌地图
- 如何将数组(数字)加载到谷歌应用脚本 Byte[] 中
- 将JSON文件中的数据加载到谷歌地图中的地图标记中
- 无法在单个网页上加载所有谷歌图表;我是不是错过了什么
- 如何有效地加载1000 +谷歌地球标记
- 角度:在另一个模态指令中加载的谷歌地图指令保持空白
- 在我的网页中将坐标加载到谷歌地图
- 如何将KML文件动态加载到谷歌地图,并进一步加载到折线
- 尝试将json输出加载到谷歌地图中
- 动态加载的谷歌分析不起作用
- 在引导选项卡中未加载角度谷歌地图
- 如何修复页面加载时谷歌地图的缩放
- 图片不加载在谷歌浏览器
- 标记将不会加载在谷歌地图API网站通过javascript
- 通过Ajax加载的谷歌地图标记不显示
- 为什么从AngularJS'内部加载时谷歌图不工作;s控制器.浏览器变白,控制台中没有任何错误
- 使用XMLHttpRequest加载KML谷歌地图,不能加载KML
- 在单击Lightbox之前不要加载iFrame谷歌地图
- 执行'write'& # 39;文档# 39;加载角度谷歌地图时出错