如何在单击地图框中的标记时更改标记颜色和图标
How to change marker color and icon on clicking a marker in mapbox?
我是Mapbox的新手。我在mapbox studio中创建了一个自定义风格的地图,然后使用geoJson添加标记。下面是示例代码:
mapboxgl.accessToken = 'pk.eyJ1Ijoic2Fua3ljc2Uhhcc.mb22KHuonjywQ-eaWQ';
var map = new mapboxgl.Map({
container: 'map_geo',
style: 'mapbox://styles/abcd/cipjtsdhyh04ebam5tndf4jaj',
zoom: 3.7,
center: [81.30, 22.76]
});
var geoJson = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"title": "Nagpur",
"description": "Nagpur",
"marker-symbol": "marker",
},
"geometry": {
"coordinates": [79.0882, 21.1845],
"type": "Point"
},
"id": "223e9579f03849c87abec10dfed64c37"
}, {
"type": "Feature",
"properties": {
"title": "Lucknow",
"description": "Lucknow",
"marker-symbol": "marker",
},
"geometry": {
"coordinates": [80.9462, 26.8467],
"type": "Point"
},
"id": "2cc757705489152c8bccb33635708427"
}]
};
map.on('load', function () {
map.addSource("markers", {
"type": "geojson",
"data": geoJson
});
map.addLayer({
"id": "markers",
"type": "symbol",
"source": "markers",
"layout": {
"icon-image": "{marker-symbol}-15",
"text-field": "{title}",
"text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
"text-offset": [0, 0.6],
"text-anchor": "top",
},
"paint": {
"text-size": 16,
"text-color": "#fff",
}
});
});
map.scrollZoom.disable();
map.on('click', function (e) {
var features = map.queryRenderedFeatures(e.point, { layers: ['markers'] });
if (!features.length) {
return;
}
// here I want to change the marker color to highlight the selected marker
});
现在我想在单击任何标记以显示所选标记时更改标记颜色。
谢谢你的问题!
您会发现这个示例有助于实现您所请求的功能:https://www.mapbox.com/mapbox-gl-js/example/hover-styles/
基本流程如下:
- 创建两层标记:一层显示未高亮样式的标记,另一层显示高亮样式的标记
- 隐藏所有标记从高亮的样式层使用滤镜 监听
- 使用
queryRenderedFeatures
查找光标下的标记 - 使用滤镜在高亮图层上显示标记
click
事件我们正在努力使这个过程更直接!
相关文章:
- 使用Angular单击时更改特定图示符图标的颜色
- 在文本框中键入时使用jQuery更改图标的颜色
- 动态更改jQuery移动图标的背景颜色
- 活动页面链接图标颜色
- 如何在引导程序中更改字形图标的内部颜色
- 单击图标时切换颜色
- 如何在 gmap v3 中对图标使用自定义颜色
- 悬停时使脸书图标反转颜色
- 更改手风琴鼠标悬停的颜色和工具图标的颜色
- 使用HTML5 Canvas进行图标颜色屏蔽
- 如何改变图标或图标的颜色在剑道ui网格过滤器
- 如何在jquery中改变引导图标的颜色
- 在一组图标之间循环使用颜色
- 使用CSS或JavaScript更改SVG图标颜色
- 使字体awesome图标改变颜色时,选择菜单的变化
- 移动浏览器中图标颜色不改变
- 动态改变颜色的GoogleMap图标/标记
- 在日期时间选择器下拉小部件中更改字形图标的颜色
- 使用jquery更改鼠标上css3图标的颜色
- 在Jquery中更改文本时更改字形图标的颜色