【发布时间】:2014-02-22 16:25:36
【问题描述】:
我正在用下面的代码显示谷歌地图,我想隐藏 A 到 B 之间的折线。谷歌上的所有答案都是关于创建一个数组然后执行array.setmap(null)。我可以在不使用数组的情况下隐藏折线吗?在其他情况下,我应该如何使用数组来使用下面的代码隐藏折线。
编辑:我需要显示标记 A 和 B
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
var time;
function initialize() {
var rendererOptions = {
map: map,
draggable: true
}
// Instantiate a directions service.
directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
// Create a map and center it on islamabad.
var islamabad = new google.maps.LatLng(33.7167, 73.0667);
var mapOptions = {
zoom: 13,
center: islamabad
}
map = new google.maps.Map(document.getElementById('map'), mapOptions);
directionsDisplay.setMap(map);
calcRoute();
}
function calcRoute() {
var start = document.getElementById('MainContent_txtFrom').value;
var end = document.getElementById('MainContent_txtTo').value;
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
【问题讨论】:
-
你做对了。您只需要调用
directionsDisplay.setMap(null);来删除路由。 -
通过写
directionsDisplay.setMap(null);地图根本没有渲染。它一直显示中心 -
你想在什么时候删除它?你在哪里添加了上面的代码?
-
我在用户填写开始和结束位置文本框后绘制地图,我只想显示 A 和 B 标记,而不是它们之间的蓝线。我在
directionsDisplay.setDirections(response);之前和之后以及directionsService.route(...){...}块之外都尝试了directionsDisplay.setMap(null); -
然后只显示 A 和 B 的 2 个标记。如果只是在地图上显示 2 个点,我仍然不明白为什么需要路线服务。
标签: google-maps google-maps-api-3