0

https://www.mapbox.com/mapbox-gl-js/example/filter-markers/に投稿された例に従おうとしていますが、私の場合、GeoJSON データは外部ファイルから読み込まれます。

map.on('load', function() {
    map.addSource("cacheData", {
        type: "geojson",
        data: "./data.geojson",

例に従っている場合、「マーカー」変数にアクセスして反復し、各マーカーをレイヤーに追加できないようです。

Mapbox.js の元のバージョンでは、個々の機能を有効/無効にすることができます.. mapboxGL では同じようにできないようです。

ファイルからレイヤーに各マーカーを追加するためにロードされているときに、データを変更するために使用できるイベントまたは何かがありますか?

4

1 に答える 1

1

投稿したMapboxの例では、var markers = {}宣言があります。例えば、

var markers = {
  // properties snipped, see link for GeoJson data
}

しかし、あなたのmap.on()呼び出しでは、それは参照しています./data.geojsonmarkersしたがって、実際に操作するオブジェクトはありません。

map.addsource()ディスクから GeoJson をプルすることから切り離す方が簡単かもしれません。

最初にJqueryを使用getJSONしてローカル パスまたは URL からデータを取得し、次にその結果を で使用できるアプローチの 1 つを次に示しますmap.on

    <!-- 1. Add these JavaScript inclusions in the head of your page -->
    <script type="text/javascript" src="http://code.jquery.com/jquery-3.0.0.min.js">
      </script>

    <script type="text/javascript">
    $(document).ready(function() {

      var geoJsonFile = "./data.geojson";


      $.getJSON(geoJsonFile, function(markers){

        console.log(markers.type);

      }); // getJSON
    });  // $(document)
于 2016-06-27T00:40:56.180 に答える