2015-07-10 40 views
0

我正在使用mapbox进行项目工作,并且我有我自己的图标,我想使用它们代替mapbox的原始本机标记。 看到了“的setIcon”功能并没有删除原来的灰色标记,但只会增加他们旁边我的图标后,我用这个CSS命令将其删除:设备移动时无法从地图中移除原始标记

.leaflet-container img.leaflet-marker-   icon[src~="http://a.tiles.mapbox.com/v4/marker/pin- m+7e7e7e.png?access_token=pk.eyJ1IjoiZGF2aWRoYWxmb24iLCJhIjoibzZhZTlJdyJ9.ab2pmxikBxsmsWEvbfYVfw"]{display:none} 

它在网络上的伟大工程,但是当我在移动网站上打开网站时无法正常工作,并再次看到我的图标和本地标记。

这是我更换图标代码:

locations.eachLayer(function(locale) { 
var prop = locale.feature.properties; 
locale.setIcon(L.icon({ 
    iconUrl: './icon.png', 
})); 
}); 

这是我的网站: http://www.david-halfon.com/worldRadio/

谢谢您的帮助!

回答

0

从你的页面的源代码:

var map = map1.featureLayer.setGeoJSON(geojson) 
locations = L.mapbox.featureLayer().addTo(map); 
locations.setGeoJSON(geojson); 

您要更改图标locations层上,但也增加了相同的数据到map1.featureLayer,那层具有默认的图标。

+0

哦你说得对。谢谢,我会解决它。但为什么它应该在桌面上而不是在移动设备上正常工作? – user3691791

+0

由于您的手机具有视网膜屏幕,因此标记图片的网址会自动切换到@ 2x双倍大小的图片,并且不再受您的CSS规则影响。 – tmcw