gdal2tiles.pyでタイルを生成しようとしていますが、結果のタイルは

。MapTiler(gdal2tilesのGUIバリアント)で同じことを行うと、タイルの結果は18/132639/97923になります。MapTiler(97923)の結果が必要です。 )が、GUIではなくバッチプロセスでこれを実行したいので、gdal2tilesだけを使用します。

ワープ、翻訳など、すでに多くのことを試しましたが、非常にうまくいきました。特に、MapTilerはgdal2tilesの単なるグラフィカルインターフェイスであり、基本的に同じことを行うと言われているので、面倒です。

gdal2tiles.py -z 17-19 -s EPSG:900913 -p raster overlay-level1.png gdal2tiles.py -z 17-20 -s EPSG:3785 overlay-level1.png gdal2tiles.py -p geodetic -s EPSG:4326 -z 18-21 -w none overlay-level1.png 

これらのほとんどはERROR 5 Access window out of range in RasterIO()またはERROR 5: Illegal values for buffer size

これは機能しますが、Y値が正しくありません:

gdal2tiles.py -s EPSG:4326 -z 16-19 -w none overlay-level1.png 

そこに何が問題なのか

コメント

  • 公開するタイルを作成しようとしました私の地図をオンラインで。 maptilerの最後のバージョン0.5.2を生成するのと同じ構造を取得したいが、gdalスクリプトを使用してそれを実行したい。私はテストしました-それがどのように見えるべきかを比較するための最後のmaptiler-古いバージョンのmaptiler-gdal2tiles.py25611 2013-02-07 10:24:56Z bishop $(qgis valmieraパッケージから)-gdal2tiles.py 19288 2010-04- 02 18:36:17Z rouault $ +あなたの(Andre Joost)変更 http://gis.stackexchange.com/questions/63024/gdal2tiles-maptiles-from-bsb-kap-are-switched

回答

解決策は予想よりもはるかに簡単です。リーフレットでTMS設定をtrueに変更するだけです。

L.tileLayer("http://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png", {tms: true}); 

コメント

  • gdal2 gdal2tiles.py(GDAL 2.1.3, released 2017/20/01)は"正しい"またはxyのGoogle / OSM規則により、生成されたタイルはそのような修正を必要としない場合があります。
  • @AhmedFasih、それはまだ動作しません。 GDAL2.3.1からテスト済み

回答

gdal2tilesは、タイルの命名にTMS仕様を使用します(下から上) 、MaptilerではGoogle / Openstreetmapタイル命名システム(上から下)を使用できます。

Google / OSMタイル命名用にgdal2tiles.pyを変更する方法については、このトピックに対する私の回答を参照してください。

GDAL2Tiles:BSB / KAPからのMapTilesが切り替えられます

コメント

  • 変更を加えましたが、Y番号は同じままですか? ' CRC EPSG:4326を使用していますが、リーフレットにはEPSG:3857が必要なため、これも問題になる可能性があります。
  • tyとyを次のように置き換える必要があります。引用された既存の行のty2とy2も同様です。ソースとタイルはすべてEPSG:3857にありました。
  • わかりました。 '関連するすべてのマシンでgdal2tiles.pyを変更したくないので、tms:trueバリアントの方が優れたソリューションです。ありがとう!

回答

投稿が遅れていますが、おそらく役立つでしょう…

gdal2tiles.pyのコードを変更したり、リーフレットに特別なフラグを追加したりする代わりに、タイルのファイル名を変更できます。これは、ArcGISOnlineで使用するタイルを作成するための簡単な修正でした。これは、OSM / Google-Maps(gdal2tilesのデフォルト)とTMS(ArcGIS Onlineで使用)の間でz / x / y規則を切り替える大まかなbashスクリプトです

 # Each time it runs it will toggle the convention between OSM/Google-Maps and TMS tiledir=$1 for x in $(find $tiledir -name "*.png") do #echo $x # isolate where tile folders begin tiles="${x#$tiledir/}" #echo $tiles # separate each z,x,y value zdir=$(echo $tiles | cut -d"/" -f1-1) xdir=$(echo $tiles | cut -d"/" -f2-2) ypng=$(echo $tiles | cut -d"/" -f3-3) # remove extension from y.png files y="${ypng%.*}" # calculate new y using formula referenced here: # http://osgeo-org.1560.x6.nabble.com/gdal2tiles-tiles-in-wrong-hemisphere-and-or-Openlayers-problem-td3742809.html (( newy=(2**zdir - 1)-y )) #echo $zdir,$xdir,$y $newy is newy # rename the files mv -v $x $tiledir/$zdir/$xdir/$newy.png done 

回答

更新された gdal2tiles.py for Google / OSM タイルリンク別

http://gisfile.com/user/admin/gdal2tiles.py

コメント

  • GISへようこそ@SE、回答ありがとうございます。ただし、将来のユーザーも理解できるように、元の質問と比較して推奨されるダウンロードリンクの違いを回答で説明する必要があります。よろしく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です