页面1、mapbox添加自定义图片marker标记点和气泡弹窗

本文介绍了如何使用Mapbox GL JS在地图上添加自定义图片作为标记点,并在点击标记点时显示自定义内容的气泡弹窗。详细步骤包括引入Mapbox库、创建地图容器、初始化地图、以及在地图加载后添加标记点和气泡弹窗。
摘要由CSDN通过智能技术生成

实现功能:自定义mapbox地图标记点的图标样式,换成自己的图片,并在点击图片的时候,弹出自定义的气泡弹窗。

HTML源码在最后面哦,复制就能直接使用(accessToken要换成自己的才行哦)

效果图:

 【实现步骤】

1、新建HTML页面,引入mapbox-gl.css和mapbox-gl.js

        <link href="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css" rel="stylesheet">
        <script src="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.js"></script>

2、创建一个地图容器,用来放地图:

<div id="map"></div>

3、在js里创建一个地图:

mapboxgl.accessToken =  ''; //这里换成你自己的就行了
       
           //创建地图
            const map = new mapboxgl.Map({
                container: 'map',
                style: 'mapbox://styles/mapbox/streets-v12',
                center: [-0.1048690838691802, 51.52323567974473], //中心点,伦敦法灵顿
                zoom: 14
            });

4、根据定义的图标数组,在map的load方法里,遍历将标记点添加到地图上,并添加气泡弹窗:

map.on('load', () => {
                //添加自定义标记点
                for (const item of geoj

要给每个标记添加不同的弹窗,可以使用Mapbox GL的Popup对象。在添加标记时,可以为每个标记创建一个Popup对象,并在需要时将其打开。 以下是一个示例,展示如何为每个标记添加不同的弹窗: ```javascript // 创建一个地图 mapboxgl.accessToken = 'YOUR_ACCESS_TOKEN'; var map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/streets-v11', center: [-74.5, 40], zoom: 9 }); // 添加标记弹窗 var markers = [ { coordinates: [-74.5, 40], // 标记的经纬度 name: 'New York City', // 标记的名称 description: 'The largest city in the United States.' // 标记的描述信息 }, { coordinates: [-77.0369, 38.9072], name: 'Washington D.C.', description: 'The capital city of the United States.' }, { coordinates: [-118.2437, 34.0522], name: 'Los Angeles', description: 'The second largest city in the United States.' } ]; markers.forEach(function(marker) { // 创建标记 var el = document.createElement('div'); el.className = 'marker'; // 创建Popup对象 var popup = new mapboxgl.Popup({ offset: 25 }).setHTML('<h3>' + marker.name + '</h3><p>' + marker.description + '</p>'); // 将Popup对象与标记关联 new mapboxgl.Marker(el) .setLngLat(marker.coordinates) .setPopup(popup) .addTo(map); }); ``` 在这个示例中,我们首先创建了一个包含每个标记的数组。然后,我们使用forEach循环遍历每个标记,并为每个标记创建一个Popup对象。我们将Popup对象的HTML内容设置为标记的名称和描述信息。最后,我们将Popup对象与标记关联,并将标记添加到地图上。 这个示例只是一个简单的演示,你可以根据自己的需求来更改标记的样式和Popup对象的内容。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值