我如何在包含多个列表的列表中从Y,X到X,Y交换坐标? (请参见下面的geojson)
[当前,我从立交桥涡轮中检索包含坐标列表的geojson文件,我想使用来自我的geojson文件的坐标列表的叶线多义线绘制路径。但是,我注意到geojson文件中的坐标是经度,而不是纬度。因此,折线没有出现在我的地图上。
下面是我的代码,我尝试过交换坐标。但是,坐标仍然没有被交换
CODE
with open('BusPath/BusService.geojson') as access_json:
read_content = json.load(access_json)
bus_access = read_content['features']
for bus_data in bus_access:
busName = bus_data['properties']
if busPath == busName['name']:
busCoord = [v[::-1] for v in bus_data['geometry']['coordinates']]
print(busCoord)
folium.PolyLine(busCoord, opacity=1, color='red').add_to(self.m)
data = io.BytesIO()
self.m.save(data, close_file=False)
self.view.setHtml(data.getvalue().decode())
#Output of print(busCoord)
[[[103.9060467, 1.3991345], [103.9058912, 1.3992605], [103.9056954, 1.3994], [103.9053896, 1.3996064], [103.9052668, 1.3996311], [103.9051645, 1.399626], [103.905072, 1.3995938], [103.9049717, 1.3995537], [103.9046416, 1.3988584], [103.9044522, 1.3984454], [103.9042792, 1.3980713]]]
JSON FILE如您所见,有多个包含路径坐标的列表,这些列表包含在主列表调用“ coordinates”中]
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[
103.9060467,
1.3991345
],
[
103.9058912,
1.3992605
],
[
103.9056954,
1.3994
],
[
103.9053896,
1.3996064
],
[
103.9052668,
1.3996311
],
[
103.9051645,
1.399626
],
[
103.905072,
1.3995938
],
[
103.9049717,
1.3995537
],
[
103.9046416,
1.3988584
],
[
103.9044522,
1.3984454
],
[
103.9042792,
1.3980713
],
[
103.9041011,
1.3977284
],
[
103.9040748,
1.3975609
],
[
103.9040403,
1.3974097
],
[
103.9040419,
1.3973301
],
[
103.9040698,
1.3972514
],
[
103.9041196,
1.3971519
],
[
103.9041682,
1.3970771
],
[
103.9042027,
1.3970303
],
[
103.9042598,
1.3969357
],
[
103.9045353,
1.3966944
],
[
103.9048951,
1.3963754
],
[
103.9059416,
1.3953595
],
[
103.9060462,
1.3951853
]
],
[
[
103.910618,
1.3954313
],
[
103.9096382,
1.3962145
],
[
103.9084619,
1.3971647
],
[
103.9079136,
1.3976289
],
[
103.9077352,
1.3977763
],
[
103.9073965,
1.3980253
],
[
103.9072047,
1.398188
],
[
103.9071445,
1.3982345
],
[
103.9068999,
1.3984727
]
],
[
[
103.9023155,
1.4034919
],
[
103.9022324,
1.4036635
],
[
103.9022109,
1.4037547
],
[
103.9022109,
1.403819
],
[
103.9024009,
1.4041775
],
[
103.9026193,
1.4045984
],
[
103.9026671,
1.4046228
],
[
103.9028788,
1.4044948
],
[
103.9023155,
1.4034919
],
[
103.9025304,
1.403368
],
[
103.9026886,
1.4032743
],
[
103.9029776,
1.4031102
],
[
103.902983,
1.4031189
],
[
103.9033585,
1.4037261
],
[
103.9034812,
1.4039168
],
[
103.9036107,
1.4041337
],
[
103.9037633,
1.4043804
],
[
103.9038275,
1.4044809
],
[
103.9039067,
1.4044437
],
[
103.904112,
1.4043433
],
[
103.9047004,
1.4040091
],
[
103.9049444,
1.4038705
],
[
103.9052092,
1.4036879
],
[
103.9055394,
1.4034604
],
[
103.9056471,
1.4033926
],
[
103.9059194,
1.4032213
],
[
103.9062514,
1.4029677
],
[
103.9063671,
1.4028932
],
[
103.9065893,
1.4027593
],
[
103.9071575,
1.4023613
],
[
103.9072297,
1.4023108
],
[
103.9077716,
1.40193
],
[
103.9083671,
1.4014838
],
[
103.9085667,
1.4013343
],
[
103.9088331,
1.4011585
],
[
103.9090336,
1.4010187
],
[
103.909135,
1.4009476
],
[
103.9093751,
1.4007812
],
[
103.9098412,
1.4004414
],
[
103.9099745,
1.4003442
],
[
103.9105697,
1.3999102
],
[
103.9106753,
1.3998332
],
[
103.9109904,
1.3996086
],
[
103.9114242,
1.3992994
],
[
103.9121032,
1.398794
],
[
103.912406,
1.3985878
],
[
103.9129423,
1.3982171
],
[
103.913025,
1.398153
],
[
103.9132785,
1.397973
],
[
103.9145249,
1.397088
],
[
103.9155465,
1.3963364
],
[
103.9158903,
1.3960981
],
[
103.916161,
1.3958978
],
[
103.9164876,
1.3956754
],
[
103.9167131,
1.3955063
],
[
103.9168727,
1.3953907
],
[
103.9167883,
1.3952698
],
[
103.9166704,
1.3951061
],
[
103.9166348,
1.3950568
],
[
103.9163379,
1.3946603
],
[
103.9163107,
1.394624
],
[
103.9161678,
1.3944331
],
[
103.9155213,
1.3935261
],
[
103.9153166,
1.3932389
],
[
103.9152363,
1.3931292
],
[
103.9150269,
1.3928444
],
[
103.9149275,
1.3927085
],
[
103.9148429,
1.39258
],
[
103.9146504,
1.3923013
],
[
103.9145753,
1.3921945
],
[
103.914456,
1.392289
],
[
103.9142648,
1.3924431
],
[
103.9141121,
1.3925784
],
[
103.9139104,
1.3927356
],
[
103.9134577,
1.3931018
],
[
103.9133432,
1.3931923
],
[
103.9115185,
1.3946994
],
[
103.9112259,
1.3949263
],
[
103.9109343,
1.3951851
],
[
103.9108511,
1.3952544
]
]
]
},
"id": "relation/6623024"
},
busCoord = [v[::-1] for v in bus_data['geometry']['coordinates']]
您应该尝试过:
busCoord = [v[::-1] for v in bus_data['geometry']['coordinates'][0]]
到达实际坐标。您当前的代码正在反转只有1个元素的最外面的列表-坐标列表。