問題タブ [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.
openlayers-3 - OpenLayers3 はベクター タイル (MVT) レイヤーを再投影できますか?
OpenLayers を使用して、作成して提供しているベクター タイル レイヤーとベースマップを表示しようとしています。
私が使用しているラスター ベースマップは EPSG:4326 にあり、EPSG:4326 に再投影された MVT レイヤーをオーバーレイしたいと考えています。
しかし、うまくいかないようです。ビュー プロジェクションが EPSG:3857 に設定されているマップがある場合、すべてが正常に表示されます。EPSG:4326 にあるベースマップが EPSG:3857 に再投影され、ベクター レイヤーが正確に表示されます。
しかし、マップ ビューの投影法を EPSG:4326 に変更すると、ラスター ベースマップは正常に見えますが、MVT レイヤーは表示されません。タイル リクエストは行われず、JS エラーも発生しません。
projection
MVT ソースの属性を に設定していEPSG:3857
ます。独自の TileGrid と を定義しようとしましol.tilegrid.createXYZ()
たが、メイン マップ ビューの投影法が EPSG:4326 に設定されていると何も機能しません。
OpenLayers での MVT サポートがかなり新しいことは知っていますが、これはまだサポートされていないのでしょうか?
ベクターデータはもともと EPSG:4326 にあったため、これを実行しようとしています。MVT タイルとして提供するには EPSG:3857 に変換する必要がありますが、元のプロジェクションで表示できるようにしたいと考えています。
vector-tiles - mapnik によって生成されたベクター タイルを Javascript/Python の mbtiles ファイルに書き込む方法は?
ベクター タイルをプレシードするための JavaScirpt/Python スクリプトを作成しようとしています。私の計画は、PostGIS データベースからデータを収集し、mapnik でタイルを生成することですが、それらを最終的にファイルに保存する方法がわかりません。
leaflet - キャッシュを消去せずにベクター タイルを再描画する方法は?
ベクター タイル レイヤーがあり、このレイヤーを再描画したいのですが、キャッシュ データを保存したいと考えています。redraw()
これによりキャッシュが削除されるため、リーフレット機能を使用できません。
これを行う機能はありますか?このタイルは以前に作成されているため、計算せずにもう一度描画したいだけです。
line - mapbox gl jsの下の機能を取得する
mapbox gl js で任意に描画された線を描画できるようにする必要があります。ラインは、ライン レイヤーの下にあるベクター タイル レイヤー内の特定のポイントを選択するために使用されます。mapbox gl js でこれを行うにはどうすればよいですか。ポイントを完全に制御できるように、カスタム描画ポリゴンが必要ですか? プロジェクトとアンプロジェクト、および開始点、ラインのピクセル幅、ラインの傾き、およびジオメトリを使用して、すべての可視ポイントを反復処理し、ラインの下にあるポイントを取得することを考えていました。しかし、gl js API を使用した簡単な方法はありますか? QueryRenderedFeatures はバウンディング ボックスを使用しますが、これは本質的に長方形であり、南北の線上に配置されているようです。地図上に任意の角度で線を引くことができる必要があります。
mapbox - MapboxGL ジオメトリの簡素化を制御する
MapboxGL は、(パフォーマンス上の理由から) ズーム レベルに応じて、いくつかのレベルの機能の簡素化および/またはフィルタリングを行います。
フル カバレッジ データをベクター タイル (この場合はカナダ国勢調査データ) としてレンダリングしています。ズームに基づいてポリゴンを単純化またはフィルター処理すると、連続しているはずのデータセットに穴が表示されます。
私はサーバー上で単純化をある程度制御できますが、同じ理由で、サーバー側の単純化は既に制限しています。リーフレットでLeaflet.VectorGridまたはLeaflet.MapboxVectorTileを使用してこれらの同じタイルを表示すると、タイルはすべてのズーム レベルで正常に表示されます。
クライアント側の単純化のしきい値をオーバーライドすることはできますか?
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 で解像度を設定する方法はありますか?
助けていただければ幸いです!ありがとう!
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
。
それは、私がやろうとしていることができないということですか?ファイルに共通点がなくても、すべてのノード、ウェイ、リレーションを保持したい。