Katakanlah saya memiliki peta panas kotak peta dasar. geojson yang membuat petak vektor tempat peta panas ini dibuat terlihat seperti ini:

{"type":"FeatureCollection",
    "features":[
         {"type":"Feature","properties":{"dbh":0, "icon-type": "bike"},"geometry":{"type":"Point","coordinates":[-79.91746,40.44356]}},
         {"type":"Feature","properties":{"dbh":12, "icon-type": "bike"},"geometry":{"type":"Point","coordinates":[-79.94606,40.44961]}},
         {"type":"Feature","properties":{"dbh":6, "icon-type": "cat"},"geometry":{"type":"Point","coordinates":[-79.96474,40.46283]}},
         {"type":"Feature","properties":{"dbh":2, "icon-type": "dog"},"geometry":{"type":"Point","coordinates":[-80.00949,40.42532]}}
     ]
}

Saya mengerti cara menampilkan peta panas sesuai tutorial di sini:

https://docs.mapbox.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/

Perhatikan bahwa setiap Fitur di geojson memiliki properti tipe ikon. Saya ingin memberi tahu peta panas saya secara dinamis untuk hanya menampilkan titik dari data dengan nilai tipe ikon tertentu seperti "sepeda" atau "kucing".

Bagaimana saya bisa mencapai ini?

1
sometimesiwritecode 19 September 2019, 23:48

1 menjawab

Jawaban Terbaik

Anda dapat melakukannya menggunakan filter di konfigurasi lapisan, seperti yang digunakan dalam contoh ini.

Dalam kasus Anda, itu akan menjadi seperti:

map.addLayer({
  id: 'heatmap-layer',
  type: 'heatmap',
  source: 'your-source',
  paint: { ... },
  filter: ['==', ['get', 'icon-type'], 'cat']
});

'==' hanya mengizinkan fitur yang dua parameter berikutnya sama.

'get' digunakan untuk mengakses properti fitur, jadi ['get', 'icon-type'] ditetapkan ke properti icon-type fitur tersebut.

'cat' adalah string literal.

2
Sljux 24 Oktober 2019, 15:01