如何将列表中的坐标Y,X交换为坐标X,Y?

问题描述 投票:0回答:1

我如何在包含多个列表的列表中从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"
    },
python folium
1个回答
1
投票
busCoord = [v[::-1] for v in bus_data['geometry']['coordinates']]

您应该尝试过:

busCoord = [v[::-1] for v in bus_data['geometry']['coordinates'][0]]

到达实际坐标。您当前的代码正在反转只有1个元素的最外面的列表-坐标列表。

© www.soinside.com 2019 - 2024. All rights reserved.