📅  最后修改于: 2023-12-03 15:37:41.580000             🧑  作者: Mango
在开发地图应用时,我们通常需要在地图上添加一些标记,以表示某些信息或位置。对于使用mapbox地图地理编码器进行地理编码的应用,本文将介绍如何在mapbox地图上添加标记。
mapbox-gl.js
和CSS样式文件mapbox-gl.css
,并在页面中创建一个容器元素,用于显示地图。<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Add marker on mapbox</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.mapbox.com/mapbox-gl-js/v2.3.0/mapbox-gl.js'></script>
<link href='https://api.mapbox.com/mapbox-gl-js/v2.3.0/mapbox-gl.css' rel='stylesheet' />
<style>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; width: 100%; }
</style>
</head>
<body>
<div id='map'></div>
</body>
</html>
mapboxgl.accessToken
设置access token,并创建一个mapboxgl.Map
对象。然后,使用geocode
方法获取地理编码结果,将结果显示在地图上,并添加标记。mapboxgl.accessToken = '<your-access-token>';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
center: [-96, 37.8],
zoom: 3
});
// 获取地理编码结果
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
mapboxgl: mapboxgl
});
// 将地理编码结果显示在地图上
map.addControl(geocoder);
// 添加标记
map.on('load', function() {
map.addLayer({
'id': 'markers',
'type': 'symbol',
'source': {
'type': 'geojson',
'data': {
'type': 'FeatureCollection',
'features': [{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': [-96, 37.8]
},
'properties': {
'title': 'This is a marker',
'description': 'Marker description'
}
}]
}
},
'layout': {
'icon-image': 'marker-15',
'text-field': '{title}',
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
'text-offset': [0, 0.6],
'text-anchor': 'top'
}
});
});
layout
属性中,我们设置了标记的图标、标题和文本样式。通过以上步骤,我们可以在mapbox地图上添加标记,方便地展示地理编码结果或其他信息。我们可以进一步通过设置标记的属性和样式,让标记更具有吸引力和可读性。