Как поменять координаты Y, X на координаты X, Y в списке? - PullRequest
0 голосов
/ 25 марта 2020

Как мне go поменять местами координаты от Y, X до X, Y в списке, который содержит несколько списков? (см. geo json ниже)

В настоящее время я извлекаю файл geo json, который содержит список координат из турбо-каскада, и я хотел бы построить путь, используя полилинию фолиума, используя список координаты из моего файла geo json. Тем не менее, я заметил, что координаты в файле Geo json по долготе, широте вместо широты, долготе. Поэтому полилиния не появляется на моей карте.

Ниже приведен мой код, и я попытался поменять координаты. Однако координата по-прежнему не переставляется

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 Как видите, существует несколько списков, содержащих Координаты пути, который содержится в основном списке, вызывают «координаты»

"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.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
            ]
          ]
        ]
      }

1 Ответ

1 голос
/ 25 марта 2020

Ваш список координат слишком глубокий, вместо:

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

вы должны были попытаться:

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

, чтобы получить действительные координаты. Ваш текущий код переворачивает самый внешний список, который имеет только 1 элемент - список координат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...