【发布时间】:2016-03-22 17:50:07
【问题描述】:
我需要使用通过 AJAX 获得的 GeoJSON 数据向 mapboxgl 地图添加标记。我以这种方式添加 GeoJSON 层:
geoJSONSource = new mapboxgl.GeoJSONSource({
data: geodata
});
map.addSource('markers', geoJSONSource);
map.addLayer({
"id": "markers",
"interactive": true,
"type": "symbol",
"source": "markers",
"layout": {
"icon-image": "{marker-symbol}-15", // stuff in {} gets replaced by the corresponding value
"icon-allow-overlap": true,
"icon-size": 1 // size of the icon
}
});
在 GeoJSON 数据本身中,在将 GeoJSON 添加到地图之前,我将每个特征设置为在循环中将属性“marker-symbol”设置为“rocket”。但是,我需要的是每个点的小圆形图像,而不是火箭。我想根据 GeoJSON 中包含的数据将这些点设置为三种颜色之一的小圆形图像。我计划在将 GeoJSON 添加到地图之前循环选择 svg 图像。
如何添加自定义图标图像?似乎即使我为 icon-image 字段输入乱码,来自 Mapbox 预制标记符号的火箭图像也会被加载。否则,如何添加自定义标记符号?
我使用的是streets-v8 mapbox 风格;我尝试根据此链接制作自己的样式来访问标记的自定义图像:
https://www.mapbox.com/help/custom-markers/#use-images-in-mapbox-gl-js
但我想不通。
【问题讨论】:
标签: image add mapbox geojson marker