单击时更改标记位置时,信息窗口不会删除
When change marker position on click, info window not remove
当我在单击时更改标记位置时,最后一个位置的地图信息窗口没有删除。我的代码如下。例如,当我点击谷歌地图标记位置w-r-t
更改为那个经度和经度。而信息窗口显示lat
,long
。之后,当我再次更改标记的位置并打开信息窗口时,它会显示lat
,long
。当我单击关闭窗口时,它会显示它后面的最后一个信息窗口。然后我需要关闭那个窗口。我该如何解决它?
var marker2 = "";
function customMap(ulat,ulong,blat,blong)
{
//console.log(params);
var map_div = "map-canvas";
// var map_div = params.mapDiv;
var myLatlng = new google.maps.LatLng(ulat, ulong);
var myLatlng1 = new google.maps.LatLng(blat,blong);
var loc_latlng = new google.maps.LatLng(23.8212783,90.4278342);
var mapOptions = {
zoom: 17,
center: myLatlng1
}
var map = new google.maps.Map(document.getElementById( map_div ), mapOptions);
var content_data = "<center>User</center>";
var content_data3 = "<center>Location</center>";
var content_data2 = "<div><strong>Location</strong><br>Lat: "+blat+"<br>Long: "+blong+"<br>Click on Map to change location<br><a class='del_icon' onclick='DeleteMarker();'>Delete Location</a></div>";
// show full map button
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(
FullScreenControl(map));
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon: this_domain_cp+"/mvc/images/user_map_icon.png",
//title: 'User'
});
attachMessage(marker, content_data);
marker2 = new google.maps.Marker({
position: myLatlng1,
map: map,
//title: 'building'
});
attachMessage(marker2, content_data2);
marker3 = new google.maps.Marker({
position: loc_latlng,
map: map,
icon: this_domain_cp+"/mvc/images/loc_icon.png",
title: 'Location'
});
attachMessage(marker3, content_data3);
//update lat long of building (red marker)
google.maps.event.addListener(map, "click", function (event) {
var blat = event.latLng.lat();
var blong = event.latLng.lng();
var myLatlng1 = new google.maps.LatLng(blat, blong);
var newloc = marker2.setPosition(myLatlng1);
var content_data2 = "<div><strong>Location</strong><br>Lat: "+blat+"<br>Long: "+blong+"<br>Click on Map to change location<br><a class='del_icon' onclick='DeleteMarker();'>Delete Location</a></div>";
attachMessage(marker2, content_data2);
infowindow.close();
$('#building_latitude').val(blat);
$('#building_longitude').val(blong);
});
}
function attachMessage(marker, content_data) {
// var message = 'This is my';
var infowindow = new google.maps.InfoWindow({
content: content_data
});
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.open(marker.get('map'), marker);
});
}
function DeleteMarker(id) {
marker2.setMap(null);
$('#building_latitude').val(0);
$('#building_latitude').attr("disabled","disabled");
$('#building_longitude').attr("disabled","disabled");
$('#building_longitude').val(0);
}
一种选择是保留对信息窗口的引用,并在在同一信息窗口上再次运行 attachMessage 函数时将其关闭:
function attachMessage(marker, content_data) {
// var message = 'This is my';
if (marker.infowindow) {
marker.infowwindow.close();
}
var infowindow = new google.maps.InfoWindow({
content: content_data
});
marker.infowindow = infowindow;
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.open(marker.get('map'), marker);
});
}
概念验证小提琴
如果您只想打开一个信息窗口,请在全局上下文中创建一个信息窗口,并将其重用于单击的任何标记。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Javascript排序的图像弹出窗口..可以't单独弹出
- 窗口大小html css
- 弹出窗口出现,然后退出
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript更新孙窗口中的表单元素
- 如何在选项卡上定义属性'的主窗口对象
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 召回窗口加载事件 - javascript
- 为什么不显示警报窗口
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- Chrome应用程序调整窗口大小保持纵横比
- 新选项卡被弹出窗口阻止程序阻止
- 如何访问UIWebView'的子窗口上下文
- 刷新父窗口后无法关闭窗口
- 自动关闭弹出窗口的Javascript
- 如何使用特定大小的浏览器窗口打开我的页面