2017-02-19 7 views
0

私は次のようにマップボックス上にレイヤーを持っています。マップボックスにURLイメージを追加するGL JSレイヤー

map.addLayer({ 
    "id": "places-drink", 
    "type": "symbol", 
    "source": "places", 
    "filter": ["all", ["==","Venues","TRUE"],['==','Type','drink']], 
    "layout": { 
      "icon-image": "bar-15", 
      "icon-allow-overlap": true, 
      "icon-size": 1.3 
    }, 
}); 

代わりにマップボックスアイコンを使用する場合は、ローカルイメージを使用します。それをどうやって行うのですか?

+0

で働くいくつかのケースでは簡単かもしれ別のアプローチは、[マーカー](httpsを使用することです。 com/mapbox-gl-js/api /#Marker)を使用します。私が信じる大きな違いは、マーカーとの衝突回避はないということです。それらは常に他のすべての上に止まっています。 –

答えて

1

シンボルレイヤーのicon-imageプロパティは、スタイルのスプライトシートを使用してアイコンを格納します。

地図スタイルのスプライトシートを変更して、カスタム画像を含めることができます。ローカルファイルを使用する場合は、spritezeroのようなツールを使用して画像からスプライトシートを作成し、作成したスプライトシートディレクトリの場所にスタイルのsprite URLを設定する必要があります。

また、mapbox.com/studio/スタイルエディタを使用してカスタムイメージをスタイルにアップロードすることもできます。ここでそれを行う方法についてのガイドです: - ://www.mapbox https://www.mapbox.com/help/custom-images/

免責事項は、私がMapbox

+0

ありがとう、私のスタイルのスプライトURLを設定するにはどうすればいいですか? –

+0

私は私のstyle.jsonでfollwoingを持っている瞬間です。 "sprite": "markers.json"しかし、これは動作しません。 –

+0

mapbox-gl-jsは相対URLをサポートしていないため、完全なファイルパスまたはURLを含める必要があります。また、スプライトシート(通常と網膜の解像度)とjsonファイルを含むディレクトリを指す必要があります – mollymerp

関連する問題