Javascript 从Gmap中删除标记
我正在尝试在我的应用程序中集成gmap,使用extjs6.0绘制前端,我想在地图中显示和隐藏一些用户位置 添加带有用户位置的Javascript 从Gmap中删除标记,javascript,google-maps,extjs,google-maps-api-3,Javascript,Google Maps,Extjs,Google Maps Api 3,我正在尝试在我的应用程序中集成gmap,使用extjs6.0绘制前端,我想在地图中显示和隐藏一些用户位置 添加带有用户位置的标记非常容易(虽然我得到一些奇怪的无法读取未定义的的属性“getBounds”,但我认为这不是什么大问题) 另一方面,移除一个标记会显示出比我想象的更复杂的一点 我已经阅读了有关Stack的一些问题和Google关于添加/删除标记的文档,我知道“正确”的方法是调用 marker.setMap(null); 但我有一个奇怪的行为:标记不会消失,而是留在地图上 这是我在地图上
标记
非常容易(虽然我得到一些奇怪的无法读取未定义的的属性“getBounds”,但我认为这不是什么大问题)
另一方面,移除一个标记
会显示出比我想象的更复杂的一点
我已经阅读了有关Stack的一些问题和Google关于添加/删除标记的文档,我知道“正确”的方法是调用
marker.setMap(null);
但我有一个奇怪的行为:标记不会消失,而是留在地图上
这是我在地图上添加标记的方式:
addMarker : function(record) {
var me = this;
var map = me.lookupController().lookupReference('map');
var latitude = record.get('latitude');
var longitude = record.get('longitude');
var description = record.get('fullName');
var marker = new google.maps.Marker({
lat: latitude,
lng: longitude,
title : description
});
me.lookupViewModel().get('techniciansMaker').push(marker);
map.addMarker(marker);
}
这就是我试图从地图中删除标记的方式:
removeMarker : function(record){
var me = this;
var markers = me.lookupViewModel().get('techniciansMaker');
for(var i = 0; i < markers.length; i++){
var m = markers[i];
if (markers[i].getTitle() == record.get('fullName')){
markers[i].setMap(null);
Ext.Array.remove(markers, markers[i]);
}
}
}
removeMarker:函数(记录){
var me=这个;
var markers=me.lookupViewModel().get('techniciansMaker');
对于(var i=0;i
此外,我还在列表中保留标记,以识别我必须删除的标记
我不知道我做错了什么
编辑-已解决
我自己发现我指的是map容器
,而不是map
本身。
调用map.gmap
成功了。使用时,不应使用新的google.maps.marker()创建标记。相反,将执行此操作并使侦听器:{click:…}
在标记上工作。将配置传递给addMarker,它返回一个marker对象:
markerConfig={
纬度,
经度,
标题:说明
}
marker=mapPanel.addMarker(markerConfig)
//隐藏标记
marker.setMap(空)
//再看一遍
marker.setMap(mapPanel.gmap)
这允许您删除标记并消除该类型错误:无法读取未定义的属性“getBounds”
在删除标记之前是否检查了该条件?请提供一个示例来说明该问题。@jkris是的,该条件已满足