gpt4 book ai didi

javascript - 将自定义标记添加到 Mapbox map

转载 作者:行者123 更新时间:2023-12-01 05:14:59 24 4
gpt4 key购买 nike

我在我的项目中使用mapbox

我正在使用mapbox.js并使用这样的自定义标记制作我的 map

 $(function() { 
const token = '*********';
let myLatlng = L.latLng(<%= @hotel.lat %>,<%= @hotel.lng %>);
L.mapbox.accessToken = token;
let map = L.mapbox.map('map-canvas', 'mapbox.streets')
.setView(myLatlng, 14);

let marker = new L.marker(myLatlng,{
icon: L.icon({
iconUrl: '//chart.googleapis.com/chart?chst=d_map_pin_icon&chld=home|EBCB2D'
})
}).addTo(map);
});

我正在像这样更改标记的图标

  icon: L.icon({
iconUrl: '//chart.googleapis.com/chart?chst=d_map_pin_icon&chld=home|EBCB2D'
})

我想知道MapBox GL JS是否有像rhis这样的速记方法来改变它?

最佳答案

为了阐明给出的两条注释,有两种不同的方法可以将自定义图像添加到 map :

使用符号层

map 中存在符号图层,可用于可视化数据源。

首先,使用loadImage()获取图像URL:

map.loadImage('https://example.com/image.png', function(error, image) {
if (error) throw error;

然后,使用addImage()将获取的图像转换为图标以在 map 中使用:

   map.addImage('pin', image);

最后,在图层上使用该图标:

   map.addLayer({ id: 'mypin', type: 'symbol', paint: { 'icon-image': 'pin' });

完整示例:https://www.mapbox.com/mapbox-gl-js/example/add-image/

使用标记

或者,您可以使用标记。它存在于 map 上方,并且不与其中的数据交互。

首先,为图像创建 DOM 元素:

var el = document.createElement('div');
el.className = 'marker';
el.style.backgroundImage = 'url(https://example.com/icon.png)';
el.style.width = '20px';
el.style.height = '20px';

接下来,基于此元素创建一个 Marker 对象,并将其添加到 map 中:

new mapboxgl.Marker(el)
.setLngLat(mylatlng)
.addTo(map);

完整示例:https://www.mapbox.com/mapbox-gl-js/example/custom-marker-icons/

关于javascript - 将自定义标记添加到 Mapbox map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com