TLDR : ¿Puede unir las características de GeoJSON que tienen una propiedad común, de modo que el polígono final sea una combinación de las características más pequeñas?
Estoy creando una aplicación web que requiere que modifique algunos GeoJSON existentes eliminando líneas entre condados, esencialmente creando polígonos más grandes a partir de los más pequeños. Así es como se ve el GeoJSON:
{ "type": "FeatureCollection", "features": [ { "type": "feature", "geometry": { "type": "MultiPolygon", "coordinates": [[[[ ..some coordinates ]]]], }, "properties": { "joiner": 1, "PUMA": "Alameda County" } }, { "type": "feature", "geometry": { "type": "MultiPolygon", "coordinates": [[[[ ..some coordinates ]]]], }, "properties": { "joiner": 2, "PUMA": "San Jose County" } }, { "type": "feature", "geometry": { "type": "MultiPolygon", "coordinates": [[[[ ..some coordinates ]]]], }, "properties": { "joiner": 1, "PUMA": "Fremont West" } }, ] }En este ejemplo ficticio, me gustaría unir el condado de Alameda y Fremont West, porque ambos contienen la propiedad "joner" de 1 (están uno al lado del otro, esto es un hecho). Hablando visualmente, esto significaría que ciertos polígonos adyacentes en el mapa se unirían en un solo polígono.
Así es como se ven los datos actualmente cuando se proyectan usando MapboxGL:
La proyección final uniría polígonos adyacentes con una propiedad común y eliminaría las líneas divisorias, creando otras más grandes:
Puede usar el método de "disolver" de Turf, que hace exactamente esto:
var dissolved = turf.dissolve(features, {propertyName: 'joiner'});Documentación: http://turfjs.org/docs/#dissolve