我试图在我的应用程序中集成Gmaps,使用ExtJs 6.0绘制前端,我想在地图中显示和隐藏一些用户位置。
添加具有用户位置的marker
非常容易(虽然我得到了一些奇怪的Cannot read property 'getBounds' of undefined
,但我认为这不是什么大问题。)
另一方面,移除marker
它显示出比我想象的更复杂的一点。
我已经在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]);
}
}
}
此外,我将标记保留在列表中以识别我必须删除的标记。
我无法弄清楚我做错了什么......
编辑 - 已解决
我自己想通了我指的是map container
而不是map
本身。
调用map.gmap
就可以了。
答案 0 :(得分:0)
使用Ext.ux.GMapPanel时,请勿自己使用script:
- # something to do before pushing the tag
# sometimes the remote might already exist (if using the same runner), let's just remove it and don't fail
- git remote remove https-origin || true
# add new https-origin remote which uses the API_KEY
- git remote add https-origin https://gitlab-ci-token:${API_KEY}@gitlab.com/my-group/my-app.git
# tag your build
- git tag build-bitrise
# push only the build-bitrise tag using the https-origin ref, and skip CI build
- git push https-origin -o ci.skip refs/tags/build-bitrise
创建标记。相反,addMarker将执行此操作,并使new google.maps.Marker()
在标记上起作用。您将配置传递给addMarker,该方法返回一个标记对象:
listeners:{click:...}
这使您可以删除标记并摆脱该markerConfig = {
lat: latitude,
lng: longitude,
title : description
}
marker = mapPanel.addMarker(markerConfig)
// hide the marker
marker.setMap(null)
// show it again
marker.setMap(mapPanel.gmap)
。