У меня есть список городов, описанных их многоугольником в файлах geoJSON.
Я хотел бы получить образец внутри точки многоугольника.
Базовая математика говорит, что центр тяжестивнутри многоугольника и достаточно сложить все долготы и все широты вместе, а затем разделить его на количество точек.
Полный файл для обработки (визуализация доступна на GitHub)
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[2.41101, 48.72605], [2.41554, 48.72656], [2.41718, 48.72791], [2.4211, 48.72953], [2.42603, 48.72824], [2.42756, 48.72865], [2.42922, 48.72723], [2.43133, 48.72646], [2.43404, 48.72665], [2.43513, 48.72409], [2.42554, 48.7227], [2.42072, 48.72105], [2.41426, 48.71782], [2.41327, 48.71869], [2.41582, 48.72086], [2.41238, 48.72193], [2.41136, 48.72325], [2.41101, 48.72605]]]
},
"properties": {
"code": "94001",
"nom": "Ablon-sur-Seine"
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[2.41959, 48.81691], [2.4159, 48.81633], [2.40936, 48.81667], [2.40787, 48.81746
},
"properties": {
"code": "94018",
"nom": "Charenton-le-Pont"
}
},
...
]
}
У меня уже есть команда, которая вычисляет длину вершин многоугольника.
$ curl -s https://raw.githubusercontent.com/gregoiredavid/france-geojson/master/departements/94-val-de-marne/communes-94-val-de-marne.geojson \
> | jq '.features[0].geometry.coordinates[0][][0]' \
> | jq -s 'add/length'
2.4206944444444445
См. https://unix.stackexchange.com/questions/13731/
Используя jq
и простые команды bash, как я могувычислить сумму долгот и сумму широт, а также повторно ввести барицентр в поле properties
в другом файле geoJSON?
Спасибо.