Mapbox-gl填充层在更高的缩放比例下会扭曲渲染

时间:2018-06-26 09:34:05

标签: mapbox mapbox-gl-js mapbox-gl

我正在使用mapbox-gl版本0.46.0-beta.1(带有ReactJS)。

我已经使用GeoJSON源绘制了简单的填充层。

用于绘制填充的坐标是

坐标数据: Coordinates Data

在特定的缩放级别,多边形将按预期方式呈现。

预期层: Expected Layer

但是在放大时,多边形会变形。

变形的填充层: Distorted Fill Layer

我正在使用的代码是:

       `let paint = {
          'fill-color': 'Some Color',
          'fill-opacity': 0.4,
          'fill-outline-color': 'Some Color'
        }
        let uniqueID = 'someuniqueID';
        map.addLayer({
          'id': uniqueID,
          'type': 'fill',
          'source': {
              'type': 'geojson',
              'data': {
                  'type': 'Feature',
                  'geometry': {
                      'type': 'Polygon',
                      'coordinates': [polyCoords]
                  }
              }
          },
          'paint': paint
        })`

2 个答案:

答案 0 :(得分:0)

通过确保多边形中的第一个点也是最后一个点,我们能够解决相同的问题。对于此多边形,应添加点:

[28.6045067810482..., 77.3860210554725...]

答案 1 :(得分:0)

我也遇到了这个问题。对于mapbox的坐标边界框,仅具有4个坐标对来创建多边形确实会产生渲染伪像,就像上面一样。将坐标边界框设为多边形时,请确保输入第5条记录,该记录与您在coor [0]处的坐标相同,其中coor是您的坐标对数组。您只会在缩放时注意到奇怪的渲染和重新绘制,这实际上使它消失了。

例如:

var coors = [[+sw_lng, +sw_lat], [+sw_lng, +ne_lat], [+ne_lng, +ne_lat], [+ne_lng, +sw_lat]]; //makes a 4 pointed polygon
coors.push(coors[0]);  //then continue