2016-09-08 15 views
1

私は、ファイル内のいくつかのJSONを持っている:私はマップにロードし、museum_countの円にラベルを追加しようとしているMapbox GLのgeojsonレイヤーからテキストフィールドを追加するにはどうすればよいですか?

{ 
    "type": "FeatureCollection", 
    "features": [ 
    { 
     "type": "Feature", 
     "geometry": { 
     "type": "Point", 
     "coordinates": [-87.5048, 33.2943], 
     "properties": { 
      "museum_count": 8465, 
      "sw": [27.9802015625,-98.5048], 
      "ne": [38.6083984375,-76.5048] 
     } 
     } 
    } 
    } 
} 

そして:

mapboxgl.accessToken = 'pk.eyJ1IjoibXl0b3Vyc2FwcCIsImEiOiJDRUVsckI0In0.-eKUxQLVBgTtyoyhxyFyYQ'; 

var map = new mapboxgl.Map({ 
    container: 'map', 
    style: 'mapbox://styles/mapbox/streets-v9', 
    center: [0,0], 
    zoom: 4 
}); 

map.addControl(new mapboxgl.Navigation()); 

map.on('load', function() { 
    map.addSource('clusters', { 
    type: "geojson", 
    data: '/en/map.json' 
    }); 

    map.addLayer({ 
     "id": "clusters", 
     "type": "circle", 
     "source": "clusters", 
     "paint": { 
      "circle-radius": 18, 
      "circle-color": "#3887be" 
     } 
    }); 

    map.addLayer({ 
    "id": "clusters-label", 
    "type": "symbol", 
    "source": "clusters", 
    "layout": { 
     "text-field": "{museum_count}", 
     "text-font": [ 
     "DIN Offc Pro Medium", 
     "Arial Unicode MS Bold" 
     ], 
     "text-size": 12 
    } 
    }); 
}); 

問題があることですmuseum_countはnullのようです。これは、プロパティレイヤーからデータを取り上げているようではありません。何がここで間違っているのアイデア?

答えて

4

こんにちはbarnaclebarnes!

問題は使用しているGeoJSONに起因します。 GeoJSON仕様に準拠していません(構文エラーと構造エラーが1つ見つかりました)。 GeoJSONLintのようなツールを使用して問題を診断し、問題を未然に防ぐことをお勧めします。

http://jsbin.com/yekewogevu/1/edit?html,output

+0

乾杯!私はそれをあまりにも凝視していて、いくつかのコードをリファクタリングしたときに入れ子になっていたことに気付かなかった。 – barnaclebarnes

関連する問題