Closed tmizu23 closed 1 month ago
ありがとうございます!まだ私の方で状況が把握できていませんが、ズレを把握した上、ソースデータを変えるなどの対応をしようと思っています。
確認ありがとうございます。 ずれの状況は例えば以下のような感じです。全箇所で同じようにずれているようです。
ソースの問題かと、以下のgeojsonをダウンロードしてQGISで表示してみると問題ないようです。 http://cyberjapandata.gsi.go.jp/xyz/cp/11/1764/821.geojson
そうなるとtippecanoeの処理のどこかが原因なのかも?と思いました。 (緯度経度から3857への変換にバグがあるとか?)
これを見ると、もしかすると--projection=EPSG:4326
が必須なのかもしれません。
https://github.com/protomaps/PMTiles?tab=readme-ov-file#recipes
タイルはzoom 3のみで作成されてることに気がつきました。 zoom3のタイルをオーバーズームで地図表示したときに、ピクセルの位置精度がzoom3レベルなので、ズームするとずれる。のが原因な気がしてきました。
変換の問題ではなく、運用の問題でした。ということで自己解決しました。
ありがとうございます!私も手元でも確認できました。確かにズレていますね。 ご指摘のとおり、このズレの原因は、z=3 の座標分解能のものをオーバーズーミングしたことによって z=3 の離散座標の位置にずれてしまうというものだと思います。
電子基準点は位置が大事なので、例えば flatgeobuf を使うなど、より使いやすい出し方を考えてみようと思います!
代替のフォーマットとして FlatGeobuf, GeoParquet, GeoArrow などを少し考慮してみましたが、私のユースケースの場合、使用する主なライブラリは MapLibre GL JS であり、いずれも現時点ではあまりスマートなサイトに組めないと思いましたので、素直に z=16 あたりまで作成した PMTiles ファイルを作る 方向で修正したいと思います。
修正にあたっては、maxzoom を増やすごとに増える PMTiles ファイルのサイズをチェックしてみたいと思っています。
PMTiles(バイナリベクトルタイル)は万能かと思ってましたが、精度に関して、特にポイントは注意が必要だと分かりました。 ここにもきちんとドキュメントがありましたね。 https://github.com/mapbox/tippecanoe#zoom-levels
代替のフォーマットも優位な部分がありますね。 オーバーズーミングでも精度が落ちないという意味ではgeosjon形式のベクトルタイルにも意味があったんだと分かりました。
どうもありがとうございました。疑問が解決したのでクローズします。
We found it to be offset to the northwest of its true position on map.