問題タブ [vector-tiles]

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.

0 投票する
0 に答える
493 参照

openlayers-3 - OpenLayers3 はベクター タイル (MVT) レイヤーを再投影できますか?

OpenLayers を使用して、作成して提供しているベクター タイル レイヤーとベースマップを表示しようとしています。

私が使用しているラスター ベースマップは EPSG:4326 にあり、EPSG:4326 に再投影された MVT レイヤーをオーバーレイしたいと考えています。

しかし、うまくいかないようです。ビュー プロジェクションが EPSG:3857 に設定されているマップがある場合、すべてが正常に表示されます。EPSG:4326 にあるベースマップが EPSG:3857 に再投影され、ベクター レイヤーが正確に表示されます。

しかし、マップ ビューの投影法を EPSG:4326 に変更すると、ラスター ベースマップは正常に見えますが、MVT レイヤーは表示されません。タイル リクエストは行われず、JS エラーも発生しません。

projectionMVT ソースの属性を に設定していEPSG:3857ます。独自の TileGrid と を定義しようとしましol.tilegrid.createXYZ()たが、メイン マップ ビューの投影法が EPSG:4326 に設定されていると何も機能しません。

OpenLayers での MVT サポートがかなり新しいことは知っていますが、これはまだサポートされていないのでしょうか?

ベクターデータはもともと EPSG:4326 にあったため、これを実行しようとしています。MVT タイルとして提供するには EPSG:3857 に変換する必要がありますが、元のプロジェクションで表示できるようにしたいと考えています。

0 投票する
1 に答える
317 参照

vector-tiles - mapnik によって生成されたベクター タイルを Javascript/Python の mbtiles ファイルに書き込む方法は?

ベクター タイルをプレシードするための JavaScirpt/Python スクリプトを作成しようとしています。私の計画は、PostGIS データベースからデータを収集し、mapnik でタイルを生成することですが、それらを最終的にファイルに保存する方法がわかりません。

0 投票する
1 に答える
378 参照

leaflet - キャッシュを消去せずにベクター タイルを再描画する方法は?

ベクター タイル レイヤーがあり、このレイヤーを再描画したいのですが、キャッシュ データを保存したいと考えています。redraw()これによりキャッシュが削除されるため、リーフレット機能を使用できません。

これを行う機能はありますか?このタイルは以前に作成されているため、計算せずにもう一度描画したいだけです。

0 投票する
1 に答える
499 参照

line - mapbox gl jsの下の機能を取得する

mapbox gl js で任意に描画された線を描画できるようにする必要があります。ラインは、ライン レイヤーの下にあるベクター タイル レイヤー内の特定のポイントを選択するために使用されます。mapbox gl js でこれを行うにはどうすればよいですか。ポイントを完全に制御できるように、カスタム描画ポリゴンが必要ですか? プロジェクトとアンプロジェクト、および開始点、ラインのピクセル幅、ラインの傾き、およびジオメトリを使用して、すべての可視ポイントを反復処理し、ラインの下にあるポイントを取得することを考えていました。しかし、gl js API を使用した簡単な方法はありますか? QueryRenderedFeatures はバウンディング ボックスを使用しますが、これは本質的に長方形であり、南北の線上に配置されているようです。地図上に任意の角度で線を引くことができる必要があります。

0 投票する
1 に答える
661 参照

mapbox - MapboxGL ジオメトリの簡素化を制御する

MapboxGL は、(パフォーマンス上の理由から) ズーム レベルに応じて、いくつかのレベルの機能の簡素化および/またはフィルタリングを行います。

フル カバレッジ データをベクター タイル (この場合はカナダ国勢調査データ) としてレンダリングしています。ズームに基づいてポリゴンを単純化またはフィルター処理すると、連続しているはずのデータセットに穴が表示されます。

私はサーバー上で単純化をある程度制御できますが、同じ理由で、サーバー側の単純化は既に制限しています。リーフレットでLeaflet.VectorGridまたはLeaflet.MapboxVectorTileを使用してこれらの同じタイルを表示すると、タイルはすべてのズーム レベルで正常に表示されます。

クライアント側の単純化のしきい値をオーバーライドすることはできますか?

ズーム レベル 8 ~ 11 での違い

0 投票する
2 に答える
557 参照

polygon - mapbox gl js を使用した簡略化されていない Mapbox Vector Tile のレンダリング

Mapbox GL js を使用して OSM データを含む mvt (Mapbox Vector Tile) をレンダリングしようとしていますが、単純化されたような醜いポリゴンが表示され続けます (このドキュメントの単純化セクションのように!)。これらのポリゴンを単純化したくありません。少なくとも、現実にできるだけ近い最高の解像度を望んでいます。

まず、OSM データから取得できるかどうかを確認しました。しかし、OSM データは優れています。そこで、タイル サーバーを調べ、より正確には mvt エンコーダー ( code ) を調べました。ベクター タイルで座標がどの程度詳細にエンコードされるかを制御する範囲値は 4096 です。4096 は非常に適切な値です。適切なポリゴンを取得できない理由がわかりません。

この問題は、追加の単純化を実行する可能性のある Mapbox GL js から発生していると思います。

エンコーダーで使用できるエクステント値は? mapbox gl js で解像度を設定する方法はありますか?

助けていただければ幸いです!ありがとう!

0 投票する
2 に答える
3097 参照

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.o5mproc_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

それは、私がやろうとしていることができないということですか?ファイルに共通点がなくても、すべてのノード、ウェイ、リレーションを保持したい。

試み

結果