問題タブ [mbtiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - GET できません / - Node.js で読み込まれる mbtiles
tilelive および mbtiles モジュールを使用して、ブラウザに .mbtiles ファイルをロードしようとしています。「lon.mbtiles」は、mapbox の Web サイトから直接ダウンロードされたサンプル都市 (ロンドン) であり、mapbox が最後にエラーを起こさない限り、ロード可能である必要があります。
ここに私のserver.jsがあります:
スクリプトが実行され、ローカル ファイルから実行された場合はタイルが検出されますが、localhost を動作させることができません。ローカルホストをブロックするファイアウォールの問題が発生しているかどうかを確認するために (コードで) テストしましたが、問題なく動作しました。
app.get
NodeJS に関する私の知識は、2 日間のビデオと記事を超えるものではありませんが、私の理解では、これは回線の問題です。
ローカルホストを実際に接続してエラーを返さないようにするにはどうすればよいですか?
前もって感謝します
javascript - .mbtiles ファイルの tile_data をリーフレットのタイルとして設定するには?
meteorjs と cordova を使用してハイブリッド モバイル アプリを開発しています。アプリはオフライン マップをサポートする必要があります。オフラインで表示できる領域の Maperitive を使用して .mbtiles ファイルをエクスポートし、ファイルをアプリにコピーして、Leaflet でタイルを読み込むときにアクセスできるようにしました。そのために、ファイル システム用のコルドバ プラグイン (.mbtiles を適切な場所にコピーするため) とコルドバ sqlite プラグイン (.mbtiles データにアクセスするため) を使用しました。 .
機能しない部分は、マップ上にタイルを「配置」することです。.mbtiles sqlite データベースにアクセスして必要なタイルを取得するカスタム タイル レイヤーを使用しています。
//TilesLayer.MBTiles.js
タイルはマップに表示されません。リーフレットは正しいタイルを要求します。これらのタイルはデータベースから正常に返されますが、表示されません。
-おそらくこの行が問題ですか:
tile_data を正しく使用していませんか? 別のものに変換する必要がありますか?.mbtiles ファイルのタイルは BLOB として保存されますが、.png 画像です。
- 牌を返すときに電話に出ませんか? 何かのようなもの:
tile.src が設定された後に呼び出しますか?
どんな助けでも大歓迎です。
node.js - mbpipe の実行方法... インストールしたばかりのプログラム
このツールを使用しようとしています: https://github.com/mapbox/node-mbtiles/wiki/Post-processing-MBTiles-with-MBPipe
でmbtilesをインストールしましたnpm install -g mbtiles
。また、プレーンなだけでローカルに(作業中のディレクトリに)インストールしましたnpm install mbtiles
。
その部分は機能しました(ファイルをダウンロードできました)が、readmeによると、次のようなコマンドの入力を開始できます
mbpipe 'pngquant 64' myMbTilesFile.mbtiles
そしてそれはうまくいくはずですか?
うーん... 特定のスクリプト ファイル ("node scriptfile.js" など) を実行する必要はありませんか? これは、スクリプト内で関数を呼び出して変数を渡すことができるように動作していますか? ユーザーが言ったように、「mbpipe」は私が持っているutils.jsファイル内にあると言えます....しかし、どのように使用すればよいですか?
上記のコマンドを入力すると、もちろん「mbpipe: command not found」が表示されます
それで...彼らは何について話しているのですか?
tilemill - マップを提供するために非常に多くのマップ タイルが必要なのはなぜですか?
各マップ タイルは 256x256 ピクセルの画像であると理解しています。つまり... 1400 x 1400 ピクセルの画面を見ている場合... 画面全体をカバーするにはおよそ 36 個のタイル (6 タイル x 6 タイル) です...そして、マップを最高のズーム レベルで表示したいとします。 ... マップ上の 20 画面分のエリア... そのズーム レベルでは 700 タイルで、さらにズームアウト レベルではそこから下に進みます。せいぜいこれは 10k タイルのようなものです。
私は現在、オレゴン州ポートランド市の地図を作成しています... 地図タイルをエクスポートして png に変換したところです... 100 万個のファイルがあります。何??!?!私が持っている最大のズーム レベルは 18 で、最小のズーム レベルは 10 です.... どういうわけか、これらのタイルは縮小されていますが、その理由はわかりません。
ここで何が欠けていますか?
openstreetmap - すべてのノード、ウェイ、および関係情報を保持しながら osm ファイルをマージするにはどうすればよいですか?
バックグラウンド
Windows デスクトップ用に取り組んでいるコンパクトなオフライン マップ ソリューション用に、世界用に縮小サイズのベクター mbtiles ファイルを作成しようとしています。そうするために、OsmAnd の縮小サイズのWorld_basemap_2.obfがまさに必要なものであることがわかりましたが、mbtiles OSM 形式であるため、mbtiles を生成できます。obfは、シェープ ファイルから生成された次の OSM ファイルを使用して作成されました。これらはhttp://builder.osmand.net/basemap/で入手できます。
私が抱えている問題は、mbtiles を作成するには、それらを 1 つの OSM ファイルに結合する必要があることです。osm2vectortiles
ここにある mbtiles を生成するためのガイドhttp://osm2vectortiles.org/docs/own-vector-tiles/。
まず、osm ファイルを処理するためにそれらを抽出します。
問題
とフラグを使用osmconvert
してファイルを結合すると、多くの関係とウェイが削除され、ファイルサイズが大幅に異なります。--complete-ways
--complex-ways
例:
ファイルのサイズは 133,691 kb になります
合計13131405個のノード、ウェイ、およびリレーションを含む CSV が生成されます
tertiary.o5mをproc_line_ferr_out.osm.o5m (上記と同じように生成) とマージし、CSV に変換します。
合計1195239のノード、ウェイ、およびリレーションを含む CSV が生成されます...これは大幅に少なく、非常に懸念されます。2 つのファイルを結合しても、元のファイルよりも少ないノード、ウェイ、およびリレーションを作成するべきではありません。
質問
私は何を間違っていますか?
osm ファイルを結合する別の方法はありますか?
osmosis
(負のノードを処理できないと読んだことがあります。)おそらく複数のosmファイルからmbtilesを生成する別の方法はありますか?
結合しようとしているファイル
- points.osm.bz2
- polygon_aeroway_military_tourism.osm.bz2
- polygon_lake_water.osm.bz2
- polygon_natural_landuse.osm.bz2
- proc_line_admin_level_out.osm.bz2
- proc_line_ferry_out.osm.bz2
- proc_line_motorway_out.osm.bz2
- proc_line_primary_out.osm.bz2
- proc_line_railway_out.osm.bz2
- proc_line_secondary_out.osm.bz2
- proc_line_tertiary_out.osm.bz2
- proc_line_trunk_out.osm.bz2
- citys.osm.bz2
- coastline.osm.bz2
OSMConvert
osmconvert
と説明する
2 つ以上の地域の統合
特定の条件下では、OSM データ ファイルをマージできます。同じ を持つオブジェクト (ノード、ウェイ、リレーション) を保持している場合
id
、それらは同じ内容を持っている必要があります。例: ウェイが 2 つの地域ファイル間の地理的境界を越える場合、ウェイ データセットには、関連するファイルの境界内にないノードへの参照であっても、すべてのノード参照が含まれている必要があります。つまり、そのような領域は、オプションを使用して切り取られていてはなりません--drop-brokenrefs
。
それは、私がやろうとしていることができないということですか?ファイルに共通点がなくても、すべてのノード、ウェイ、リレーションを保持したい。
試み
結果
export - mapbox スタジオ マップを .mbtiles ファイルとしてエクスポートする方法
したがって、これに対する答えは「いいえ」だと思いますが、mapbox studio ( https://www.mapbox.com/studio/ ) を使用してオンラインで設計したマップを .mbtiles ファイルにエクスポートする方法はありますか?自分でホストできますか?
正直なところ、私はこれにお金を払っても構わないと思っています(特に私のような平凡なコンピューターでは、世界の.pbfファイルを取得してpostgresql dbに入れる手間を省くのは本当に苦痛です)
かつてはこれを行う方法があったように思えますが、現在はこの機能を取り除いているようです。作成したマップを使用するさまざまな方法を確認できますが、すべてホスティング サービスとして mapbox を使用する必要があります...作成したマップをダウンロードする方法がないようです。