mapbox-gl 在球上绘制线
时间: 2023-12-06 09:05:15 浏览: 242
Mapbox GL JS 可以在球面上绘制线。可以使用 `turf.js` 库来生成球面上的线的坐标,然后使用 Mapbox GL JS 的 `GeoJSONSource` 和 `Layer` 将线添加到地图上。以下是一个示例代码:
```
// 使用turf.js生成经纬度坐标
var line = turf.greatCircle([lng1, lat1], [lng2, lat2], { steps: 50 });
// 创建GeoJSON数据源
var geojson = {
type: 'FeatureCollection',
features: [{
type: 'Feature',
geometry: {
type: 'LineString',
coordinates: line.geometry.coordinates
}
}]
};
map.on('load', function() {
// 添加GeoJSON数据源
map.addSource('line', {
type: 'geojson',
data: geojson
});
// 添加线图层
map.addLayer({
id: 'line',
type: 'line',
source: 'line',
layout: {
'line-cap': 'round',
'line-join': 'round'
},
paint: {
'line-color': '#888',
'line-width': 2
}
});
});
```
在这个示例中,我们使用 `turf.greatCircle` 函数生成经纬度坐标,并将它们放入一个 `LineString` 类型的 GeoJSON 对象中。然后,我们将 GeoJSON 对象添加到地图上,并添加一个线图层来展示它。
阅读全文