2015-10-14 88 views
0

我正在使用网页上的地图框地图,并使地图和放置引脚都正常工作,但无法获取定制标记的工作。在地图盒地图上不显示自定义标记

我的代码正在为放置图钉是:

L.mapbox.featureLayer({ 
type: 'Feature', 
geometry: { type:'Point', coordinates:[$longitude, $latitude] }, 
properties: { title:'My Location', description:'My Description', 'marker-size':'large', 'marker-color':'#cc0000', 'marker-symbol':'building' } 
}).addTo(map); 

这个工程并填充我的位置的地图。

我已经使用这个代码,以尝试并添加自定义标记,但是这并不工作:

L.mapbox.featureLayer({ 
type: 'Feature', 
geometry: { type:'Point', coordinates:[$longitude, $latitude] }, 
properties: { title:'My Location', description:'My Description', icon: { iconUrl: 'https://www.mapbox.com/mapbox.js/assets/images/astronaut1.png', iconSize: [50, 50], iconAnchor: [25, 25], popupAnchor: [0, -25], className: 'dot' } } 
}).addTo(map); 

我也有在地图上的多个引脚和其他层,可以开启或关闭,一切都运作良好,我只是不能得到这个自定义标记工作!

有没有人有自定义标记在mapbox上处理这样的代码?

回答

0

我不认为你可以在主GeoJSON属性散列中指定自定义标记选项,如icon。 我相信你需要做一些类似于下面的事情。

var customIcon = new L.Icon({iconUrl: 'https://www.mapbox.com/mapbox.js/assets/images/astronaut1.png', iconSize: [50, 50], iconAnchor: [25, 25], popupAnchor: [0, -25], className: 'dot' }) 
L.mapbox.featureLayer(
{ 
    type: 'Feature', 
    geometry: { type:'Point', coordinates:[$longitude, $latitude] }, 
    properties: { title:'My Location', description:'My Description'} 
}, 
{ 
    pointToLayer: function(feature,latLng) { return L.marker(latLng, {icon: customIcon}} 
}).addTo(map); 

https://www.mapbox.com/mapbox.js/api/v2.2.2/l-mapbox-featurelayer/

+0

感谢您的输入,但是这个代码也不起作用 – Richard

+0

你把这个成的jsfiddle的任何机会呢? – snkashis