我有一个使用API v3的谷歌地图,它可以获取从一个位置到另一个位置的路线.该应用程序运行良好,但获取方向的窗口是地图上的叠加.我喜欢它,所以当这个窗口关闭时,方向将从地图上移除,但其他标记仍然存在.
我尝试过以下方法:
$('#content .close').live('click', function() {
$('#content').hide();
directionDisplay = new google.maps.DirectionsRenderer();
directionDisplay.suppressMarkers = true;
directionDisplay.setMap(map);
return false;
});
Run Code Online (Sandbox Code Playgroud)
这似乎隐藏了预期的窗口,但没有做任何关于从地图中删除方向的问题.
任何帮助深表感谢.
戴夫.
使用AngularJS和ui-gmap-google-map指令(http://angular-ui.github.io/angular-google-maps/#!/)我创建了一个谷歌地图,绘制了驱动路线.当我尝试绘制不同的路线时,第一条路线仍然在地图上.我试过directionsDisplay.setMap(null); 删除旧路由,但这不起作用.有人可以帮忙吗?
这是我的控制器代码的相关部分:
uiGmapIsReady.promise().then(function (map_instances) {
$scope.mapRef = $scope.map.control.getGMap();
});
$scope.getDirections = function (lat, long, origin, type) {
uiGmapGoogleMapApi.then(function (maps) {
var directionsService = new maps.DirectionsService();
var directionsDisplay = new maps.DirectionsRenderer();
if (origin == "" || type == "geo") {
origin = $scope.geoPosition.coords.latitude + ", " + $scope.geoPosition.coords.longitude;
}
var request = {
origin: origin,
destination: lat + ", " + long,
travelMode: maps.TravelMode['DRIVING'],
optimizeWaypoints: true
};
directionsService.route(request, function (response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setMap(null); …Run Code Online (Sandbox Code Playgroud) 我正在使用DirectionsRenderer显示一条路径,但在我完成之后我想删除折线并继续进行操作.我似乎无法控制此功能创建的标记和折线.
有没有人知道如何删除这样的折线,如果不可能,其他建议?
我现在你可以使用suppress属性,但是因为我在第一阶段使用折线,所以这并没有真正解决任何问题.
严重沮丧..干杯!
嗨,我正在尝试从信息窗口计划一条路线,但我无法删除之前设定的路线.我尝试了setMap(null)但它没有用.我正在使用一个事件监听器的回调,因为我需要传递从api调用返回的参数.一种选择是在每个事件上使用新的google.maps.map,例如标记上的(链接),但是在页面加载时我的标记已经放置.
element = document.getElementById('map-canvas');
map = new google.maps.Map(element, options);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(car.lat, car.long),
map: map,
title: car.make
});
google.maps.event.addListener(marker, 'click', directionsCallback(car));
function directionsCallback(car) {
return function (e) {
if( infowindow != null ) {
infowindow.close();
}
var directionsService = new google.maps.DirectionsService();
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(null);
console.log(directionsDisplay);
calcRoute = function(){
var startPoint = document.getElementById('clientAddress').value;
var finishPoint = new google.maps.LatLng(car.lat, car.long);
var request = {
origin: startPoint,
destination: finishPoint,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function …Run Code Online (Sandbox Code Playgroud) 我有一组从XML加载的标记;单击标记时,我会从当前位置到标记位置呈现方向。但是,我希望能够清除路线,最好是在用户单击其他标记时。目前,所有路线都同时显示。我不知道我在搞砸。我已经尝试过directionsDisplay.setMap(null),但是并不能清除它们。如果您注意到问题所在,请告诉我。谢谢。
function loadGoogleMap(){
// load google map
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' +
'callback=MyMap';
document.body.appendChild(script);
}
var map = ''
function MyMap(){
/*
document.getElementById('finddate').value
*/
var im = 'http://www.robotwoods.com/dev/misc/bluecircle.png';
var CustomMarker = 'http://findmyyard.com/images/MarkerIcon.png';
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(locate, noPos());
} else {
noPos();
}
function locate(position){
var directionsDisplay = new google.maps.DirectionsRenderer();
var directionsService = new google.maps.DirectionsService();
var myLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var mapOptions = {
zoom: 12,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoomControl: false,
streetViewControl: false,
mapTypeControl: false, …Run Code Online (Sandbox Code Playgroud)