我目前是一名初学者,正在尝试使用 ReactJS 和 Mapbox GL JS 构建一个项目。到目前为止,我已经创建了一个地图,其中包含地理编码器、导航控件和从 JSON 文件检索的位置处的标记。然而,令人烦恼的是,每当我使用地理编码器搜索位置时,它都会在我搜索的位置放置一个标记。目前,我刚刚编辑了标记属性,并使颜色与 JSON 位置上的标记不同,因此它看起来有点像样,但这只是一个临时解决方案。我将如何完全删除默认标记?附上Geocoder元素代码:
const geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
mapboxgl: mapboxgl,
placeholder: "Search City, State, Country, Zip Code",
marker: {
color: "black",
},
});
map.addControl(geocoder);
本质上,我正在尝试找到一种方法来完全摆脱地理编码器标记。谢谢!
在react-map-gl-geocoder 的 GitHub 主页中,它解释了关于 prop 'marker' 的内容:
如果为 true,则将使用一组默认的标记选项将标记添加到地图中用户选择的结果的位置。如果该值是一个对象,则将使用这些选项构造标记。如果为 false,则不会向地图添加任何标记。
所以基本上你需要将代码更改为:
const geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
mapboxgl: mapboxgl,
placeholder: "Search City, State, Country, Zip Code",
marker: false,
});
map.addControl(geocoder);
简单地你可以像这样使用。这段代码对我有用。你应该使用 marker: false
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
mapboxgl: mapboxgl,
marker: false,
});