2017-10-13 18 views
0

fitBoundsメソッドは、大西洋の両側にあるポイントではうまく動かないようです359〜0)。Mapbox.js:日付行の両側の領域にマップ境界を設定

アラスカの境界やHKからSFへの飛行はどのようにして可能ですか?中心点とカスタムズームレベルを使用して回避策をコーディングすることは可能かもしれませんが、境界の扱いが不十分であることを回避するための回避策のように感じられます。

firBoundsにヘルプがない場合、同様の結果が得られるような別の方法がありますか?アラスカの周りのfitBoundsの

例アラスカはantimeridianを横断するので、:

map.fitBounds([[172.461667,71.365162],[-129.979511,51.214183]]) 

答えて

0

これらの例は、常に痛みのビットです。使用して座標あなたのバウンディングボックスをラップしている何を助けることがあります。

https://www.mapbox.com/mapbox-gl-js/api/#lnglat#wrap

別の解決策を使用して、中心&ズーム値に境界を変換するために、次のようになります。

https://github.com/mapbox/geo-viewport

const {width, height} = map.getCanvas().getBoundingClientRect(); 
const viewport = geoViewport(
     [minX, minY, maxX, maxY], // the bounding box (west, south, east north) 
     [width, height], // map dimensions in pixel 
     0, // minzoom 
     22, // maxzoom 
     512 // tilesize for mapbox-gl-js 
    ); 
map.setCenter(viewport.center); 
map.setZoom(viewport.zoom) 
+0

ありがとう!これは非常に役に立ちます! 私はまだ 'turf-extent'によって返されたバウンディングボックスから適切な結果を得ることはできません。また、日付ライン上で静的座標を使用することもできます。しかし、私は間違いなく作業用のソリューションに近づいています:) –

+0

私はこの方法で実際のソリューションを実装することができませんでした。 –

関連する問題