問題タブ [mapbox-gl]
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.
android - Mapbox のオフラインと同期
最新のオフライン サポートについては Mapbox チームに感謝します( Android サポートを参照) 。
1 つの質問: オフライン サポートが必要であるが、mapbox サーバー側のデータへの更新を、以前に保存されたクライアント側のオフライン バージョンと同期することも必要な場合、それは自動的にサポートされますか?
言い換えると、
- クライアント A が 1 日目にオフライン リージョンを保存する
- mapbox サーバーのデータは 2 日目に更新されます
- クライアント A は 3 日目に少しオンラインになり、オフライン リージョンを表示しています
- クライアント A は、サーバーの更新または以前に保存したリージョンを確認できますか。
以前に保存したリージョンが表示され、更新は表示されないようです。
もしそうなら、地域がオフラインで動作するだけでなく、オンライン時に更新を受け取り、それ以降はオフライン用に保存する同期モードはありますか?
ユースケースは、ユーザーが接続状態が悪いが、時々接続し、明示的に再ダウンロードせずに最新のデータを必要とする場合です。
これがサポートされていない場合、私たちプログラマーは簡単に実行できますか :)
javascript - Mapbox-GL setStyle はレイヤーを削除します
Mapbox-GL を使用してマッピング Web アプリケーションを構築しています。クールな機能がたくさんあります。Mapbox Web サイトの例に従って、ベース マップ (衛星、地形など) を切り替えるボタンを設定しました。
私が抱えている問題は、スタイルを変更すると、レイヤーとして読み込まれたポリゴンが削除され、マップが再読み込みされることです。ユーザー クエリに基づいて、Mongo データベースからポリゴンをレイヤーとして読み込みます。ベースマップを変更して、それらのレイヤーを保持できるようにしたいです。
マップをリロードせずに、または少なくともレイヤーをドロップせずにスタイルを変更する方法はありますか?
これはスイッチャーのコードです。例と同じですが、カスタム スタイルの条件を追加しました。
javascript - mapbox gl をクリックして機能を強調表示する
マウスオーバーすると強調表示される通りの geojson レイヤーがあります。
私の目的は、クリックイベントで個々の道路を赤く強調することです。一度にハイライト表示できるのは 1 つの通りのみであり、別のストリートがクリックされるまでハイライト表示されたままにする必要があります。
次のコードに何を追加する必要があるかについて何か考えはありますか?
ios - Mapbox iOS SDK 3.1 Annotation Callout をスティッキーにする方法
iOSで開発を始めたばかりです。問題が些細なことのように思われる場合は、申し訳ありません。
API から SwiftyJSON を介していくつかのマーカー/注釈を読み込み、それらを Mapbox MapView に表示します。注釈をクリックすると、コールアウトがトリガーされます。-これはうまく機能し、地獄のように簡単です。問題: mapView をマーカー/注釈とコールアウトの中央に配置するか、カメラを移動してズームインして中央に表示したいと思います。次のようなものを使用するときはいつでも:
また
吹き出しは同じ位置にとどまります。私が達成したいのは、注釈/マーカーの上にスティッキーで表示されることです。
これは、この部分の完全なコードです (viewdidload での注釈の構築は含まれていません:
完了ハンドラの使用も考えましたが、その仕組みがわかりませんでした。大変助かりました!
swift - for ループの mapbox にカスタム マーカーを追加する
私はここで少し立ち往生しています...
マップボックス ビューのマーカーごとに異なる画像を追加しようとしています。マップを作成するために、配列を調べる for ループを使用しました。
ここまでは順調ですね。問題は、オンラインで見つけた特定の画像を追加する唯一の方法は次のとおりです。
それをループの外側に追加するため、各マーカーでは機能しません。
それを行う別の方法はありますか?
ios - Mapbox オフライン ストレージ サイズ
MGLOfflineStorage を使用して、オフラインで使用するタイル (デフォルト スタイル) をダウンロードしています。非常に小さな領域をダウンロードするには、~75MB かかります。はるかに大きなリージョンをダウンロードすると、100MB ほどかかりますが、これは奇妙です。実際のタイルはそれほど大きくなく、すべての地域で 70MB 程度の一般的なデータまたは何か (フォント、アイコンなど) がダウンロードされるようです。これは正常ですか?
その共通データを特定のスタイルのアプリに埋め込むことは可能ですか? または、その共通データを何らかの形で小さくするには?
編集: ベクター タイルのこの一般的なサイズは、スタイルに大きく依存しているようです。基本的なスタイルでテストしたところ、70MB ではなく 40MB かかりました。
また、ラスター タイル (サテライト スタイル) を使用してテストしました。結論は、ラスター タイルを使用する方が小さい領域に適し、ベクター タイルを使用する方が大きい領域に適しているということです。これは、ラスター タイルはベクター タイルよりも領域サイズに大きく依存し、ラスター タイルには最初の共通ダウンロードがないためです。
追加の質問は、ストリート スタイルをラスター タイルとして使用することは可能ですか?
ios-v3.2.0-rc.1 の使用
ios - 何千ものポイントを含むポリラインでのマップのパフォーマンス
私たちが開発しているアプリケーションは、何十万ものポイントからなる過去の動きのデータを表示する必要があります。ポリラインあたりのポイント数が増えるか、ポリラインの数が増えると、パフォーマンスが低下します。この場合、パフォーマンスを向上させる最善の方法は何ですか?
おそらく、どうにかしてポリラインをマップタイルに焼き付けて、これらを追加のレイヤーとして含めるのでしょうか? 現在、ios-v3.2.0 を使用して、iOS9+ をターゲットにしています。
javascript - 返された getPaintProperty メソッドを指定 Mapbox gl
別のドキュメントとして構築されている印刷可能なマップに動的な凡例を設定するための変数として使用できるように、レイヤーの塗りつぶし色を返したいと考えています。
ブラウザーは 16 進数の色しか認識しませんが、getPaintProperty は hsl を返します。Mapbox がこの情報をスタイル/レイヤーに対して保持していることは知っていますが、アクセス方法がわかりません。
代わりにレイヤーの塗りつぶし色の 16 進値を返す方法はありますか?
これは、各レイヤーの塗りつぶしの色にアクセスするために使用している汎用コードです。
私の現在の代替手段は、追加のライブラリを使用して変換を実行することです。