微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自两个点的边界的Mapbox矩形线

如何解决来自两个点的边界的Mapbox矩形线

我使用MapBox,我的目标是从bounds创建一个矩形。我还将地图集中到bounds中。

虽然MapBox可以找出fitBounds的所有四个坐标,但它对直线的作用不同。而是将线画为两点之间的线。

enter image description here

我如何...

  1. ...改为绘制矩形?
  2. ...计算所需的另外两个坐标?

部分代码

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,并且似乎有可能,但是它是一个只绘制矩形的大型库。
  • 如果图书馆很小,我会接受它作为答案。
  • 如果解决方案是数学公式,我需要一个代码示例来掌握它。

解决方法

有了一对边界坐标,您总是可以在mapbox中创建一个没有任何库的矩形...这是使用左下/右上的数据创建4个角的问题。 enter image description here

Mapbox需要创建一个与初始点相同的第五点。

您可以使用自己的功能创建要添加到线层的功能,它将绘制一个矩形...就像这样:

{
  "geometry": {
    "coordinates": [
      [
        [
          17.76069212,59.22761885
        ],[
          17.76069212,59.44007814
        ],[
          18.20001876,59.22761885
        ]
      ]
    ],"type": "Polygon"
  },"type": "Feature","properties": {}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。