У меня есть список python, который выглядит так:
type(route)
>>>list
print(route)
[{'type': 'LineString',
'coordinates': [[-94.586472, 39.098705],
[-64.586487, 39.098716],
[-64.585969, 39.094146],
[-64.586037, 39.093936],
[-64.586037, 39.093936],
[-64.586046, 39.093933]]},
{'type': 'LineString',
'coordinates': [[-94.581459, 39.093506],
[-64.581451, 39.09351],
[-64.581444, 39.093506],
[-64.581459, 39.093433],
[-64.581726, 39.093418],
[-64.588631, 39.087582]]},
{'type': 'LineString',
'coordinates': [[-94.584312, 39.042758],
[-64.584312, 39.042758],
[-64.583225, 39.099256],
[-64.584328, 39.09932]]}]
Как я могу преобразовать это в действительный файл GeoJSON? Я пробовал test = FeatureCollection(features=route)
, но это создало недопустимый файл, когда я позже его сбросил.
Похоже, что FeatureCollection
требует, чтобы каждый элемент был типом Feature
который имеет другую схему, чем ваши текущие маршруты. Самое простое решение - использовать представление списка для сопоставления каждого маршрута в схеме Feature
.
def route_to_feature(idx, route): return { 'type': 'Feature', 'geometry': route, 'properties': { 'name': f'Route #{idx}' } }
Что можно использовать так.
geojson.FeatureCollection([ route_to_feature(i, route) for i, route in enumerate(routes) ])