【发布时间】:2021-02-22 05:03:42
【问题描述】:
我使用 Mapbox,我的目标是从我的 bounds 创建一个矩形。我还将我的地图置于bounds 的中心。
虽然 Mapbox 可以计算出 fitBounds 的所有四个坐标,但它对线的作用不同。相反,它将线绘制为两点之间的线。
我该如何...
- ...改为画一个矩形?
- ...计算所需的其他两个坐标?
部分代码
const bounds = [
[17.76069212, 59.22761885],
[18.20001876, 59.44007814],
];
var map = new mapboxgl.Map({
container: "map",
style: "mapbox://styles/mapbox/streets-v11",
});
map.fitBounds(bounds, {
padding: 16,
});
map.on("load", () => {
map.addSource("route", {
type: "geojson",
data: {
type: "Feature",
properties: {},
geometry: {
type: "LineString",
coordinates: bounds,
},
},
});
map.addLayer({
id: "route",
type: "line",
source: "route",
layout: {
"line-join": "round",
"line-cap": "round",
},
paint: {
"line-color": "#888",
"line-width": 8,
},
});
});
- 我看到了 turf.js,似乎可以使用它,但它是一个大型库,仅用于绘制矩形。
- 如果图书馆很小,我会接受它作为答案。
- 如果解决方案是数学公式,我需要一个代码示例来掌握它。
【问题讨论】:
标签: gps coordinates mapbox rectangles geo