誰かが次のシナリオを説明してくれませんか?
4 つの座標のみを含む 1 つのポリゴン フィーチャを含む GeoJSON ファイルがあるとします。
var json = {
"type": "FeatureCollection",
"features": [
{
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
6.55757,
45.4283625
],
[
6.50925565,
45.3728949
],
[
6.5249137,
45.3728329
],
[
6.52511385,
45.37276325
]
]
]
},
"type": "Feature",
"properties": {
"uid": "fb3f3081-c6cf-4f64-8ccb-67918a3dbe84"
}
}
]
}
これをメルカトルに投影し、バウンディング ボックスを取得します。
var projection = d3.geo.mercator()
.scale(1)
.precision(0);
var path = d3.geo.path()
.projection(projection);
var pathBounds = path.bounds(json.features[0]);
var geoBounds = d3.geo.bounds(json.features[0]);
json.features[0].geometry.coordinates[0].map(function(d) {
console.log("projection:", projection(d)[0], projection(d)[1]);
});
console.log('path.bounds:', pathBounds[0][0], pathBounds[0][1])
console.log('path.bounds:', pathBounds[1][0], pathBounds[1][1])
console.log('d3.geo.bounds:', geoBounds[0][0], geoBounds[0][1])
console.log('d3.geo.bounds:', geoBounds[1][0], geoBounds[1][1])
結果は直感的ではありません。パスの境界ボックスは、投影されたどのポイントよりも大きく、地理境界ボックスは[[-180,-90],[180,90]]
.
ポリゴンは、ポリゴンの外側の世界全体であると解釈されているようです。これは期待されていますか?ポリゴンをリストされたポイント内の領域として扱うのではなく、なぜそうしているのでしょうか?
Fiddle (デバッガーをオンにしてコンソール ログを表示):