Google maps directions destination alias
我在 http://www.no1hastings.check.com.au/directions.html 有一个页面,访问者可以在其中获取从任何地方到固定点的路线。 Google 地理编码器识别的目的地是街道地址(1 Morwong Drive),但我希望它显示 Google 无法识别的建筑物名称(黑斯廷斯街 1 号)。
有没有办法将街道地址设置为目的地,但在显示结果时将其别名为建筑物名称?
一种选择是在将响应发送到 DirectionsRenderer 之前修改响应中的字符串:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function calcRoute() { var request = { origin: 'Brisbane QLD Australia Australia', // origin: 'Brisbane Qld, Australia', destination: '1 Morwong Drive, Noosa Heads Qld, Australia', // waypoints:[{location: 'Bourke, NSW'}, {location: 'Broken Hill, NSW'}], travelMode: google.maps.DirectionsTravelMode.DRIVING, unitSystem: google.maps.UnitSystem.METRIC }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { var route = response.routes[0]; var lastleg = route.legs[route.legs.length-1]; response.routes[0].legs[route.legs.length-1].end_address = 'No. 1 in Hastings Street'; directionsDisplay.setDirections(response); } else alert("Directions request failed:"+status); }); } |
要处理方向被方向渲染器更改的情况(即拖动原点),您可以执行类似的操作(其中 changeEnd 是全局变量并设置为 false),请注意,如果用户拖动目的地(您可能希望阻止:Google maps api v3 两个标记一个固定一个拖动):
1 2 3 4 5 6 7 8 9 10 11 | google.maps.event.addListener(directionsDisplay, 'directions_changed', function() { computeTotalDistance(directionsDisplay.directions); if (!changeEnd) { var response = directionsDisplay.getDirections(); var route = response.routes[0]; var lastleg = route.legs[route.legs.length-1]; response.routes[0].legs[route.legs.length-1].end_address = 'No. 1 in Hastings Street'; changeEnd = true; directionsDisplay.setDirections(response); } else changeEnd = false; }); |