不确定如何解析 Google 地图 JSON 以使用 SwiftyJSON 检索位置坐标

Unsure how to parse Google Maps JSON to retrieve location coordinates using SwiftyJSON

我不确定如何解析我从 Google 地图中检索到的 JSON 数据。我想使用 SwiftyJSON 来解析数据,但我不确定该怎么做。我希望能够解析数据并获取位置坐标(纬度、经度)。下面是我检索到的 JSON 数据。

如有任何帮助,我们将不胜感激

{
   "html_attributions" : [],
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : 51.0486151,
               "lng" : -114.0708459
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.18383,
                  "lng" : -113.8769511
               },
               "southwest" : {
                  "lat" : 50.84240399999999,
                  "lng" : -114.27136
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "e9ef57020e495c7241704bc4b14eaafe7c634028",
         "name" : "Calgary",
         "photos" : [
            {
               "height" : 1836,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/115746301679547350757/photos\"\u003eJerry Ren\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAALI2ExQZ7qgDmFE_Us6rcrtLjpBGzSh9pVKl7rP52zKMfG7SgGzC1bNyIqEicu4r3SO6KLNW-j8RxeB38sEHM-fvxoS31VewXR3N4tkBH3BaTJAoKo4djolrJzJhZl-W0DXx1MUwVPgxwjIC-28mJzEptspbfWHTcR3HVU0_QJCnEhAH0XBgkag-3vbsjFfY95WXGhSbfnUFSHLGosRwSQAElS4qwREzYQ",
               "width" : 3264
            }
         ],
         "place_id" : "ChIJ1T-EnwNwcVMROrZStrE7bSY",
         "reference" : "CmRbAAAAxzmOuUo_2OEf_3frcA5eyO0oSsV-i2Ef1e76gO18uTWl8w37JwF_AdTfqtZ95-ItHUr0VnGnDtO53WD_TrmczRXZvJVTeI28gylVsGvEcknPET51xeXBNKWVB_0C7JKkEhDbaYPM5JVrJDGbBBe9DOeWGhRaVHUOKnIRNBqNf5ilzGWyLps-CQ",
         "scope" : "GOOGLE",
         "types" : [ "locality", "political" ],
         "vicinity" : "Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294845,
               "lng" : -114.1762953
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1308054302915,
                  "lng" : -114.1747124197085
               },
               "southwest" : {
                  "lat" : 51.1281074697085,
                  "lng" : -114.1774103802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/school-71.png",
         "id" : "cd29752925795732255dcce34744976417abff43",
         "name" : "Gymboree Play & Music, Hawkwood",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "place_id" : "ChIJdUpobcJocVMRnBz9Qp0KGT0",
         "rating" : 5,
         "reference" : "CmRRAAAA-pvtBz57QlGqtEkzB_TEb1ce5kv6wTiLAjSOmBqwv4tsarn8FiMPXus7x1ZH39Ul2pYbGdhyxPpaBijvws_j9XHcb0jWTZupaJt8L3GdLkkG4aaAKDX69ox4eZVQwX98EhAQEZnT3wQAQLgmmN8rys8tGhRf9lTeTsmFXwhreIbibjq1gh2CHw",
         "scope" : "GOOGLE",
         "types" : [ "point_of_interest", "establishment" ],
         "vicinity" : "217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294104,
               "lng" : -114.1764787
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1307220802915,
                  "lng" : -114.1748182197085
               },
               "southwest" : {
                  "lat" : 51.1280241197085,
                  "lng" : -114.1775161802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "3e78490c3fa31b0bbfac5cb58a85ca1c77608d97",
         "name" : "Associated Massage Professionals Inc.",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "place_id" : "ChIJdUpobcJocVMR4chx0gwd_QM",
         "reference" : "CmRRAAAAGlIy_t5cihs-i8Pbxmo8unhMNfbfhPAskIMZJNvBETtzmyl4doQrVudRnBHWd1uhU_Jv7D4qi9yf_qp5_14HWBrFAhtJ1MW-34t669Tpk4jn48xZKZO01rFHxzavjWgUEhCaFDbbZ-920dJ4tWRucYGMGhS7oBxiR-S7vh3CRBH1uylRhAcJ2Q",
         "scope" : "GOOGLE",
         "types" : [ "health", "point_of_interest", "establishment" ],
         "vicinity" : "217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294653,
               "lng" : -114.1764675
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1307766302915,
                  "lng" : -114.1748043697085
               },
               "southwest" : {
                  "lat" : 51.12807866970851,
                  "lng" : -114.1775023302915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "242906dbf716a5ecace57fc84d6ffe2647275b79",
         "name" : "Jake Goldthorpe - State Farm Insurance Agent",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "photos" : [
            {
               "height" : 1536,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/115788660801210447807/photos\"\u003eJake Goldthorpe - State Farm Insurance Agent\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAAOiVqzb1X6A9uMQwsk8pkMd9dkUjP3b0JsyznWdfykCpjf9WS4c-Oh82psrKbiRfVvcyK1pTWTVf1OxT5bpgRpw2Q29dFwOuCibnf86qDDeiAu1Rh5PoMGlqoKAEr1P3DUfCrAeedipga1wccPyMO7AaZ74GNlw5ExIQS3HrEn0AEhA7Rp0d-zMw9Q3f8-jWeDf0GhTHquQ8AmMm1GY843zYb1Lx_eX61Q",
               "width" : 1540
            }
         ],
         "place_id" : "ChIJdUpobcJocVMR2bhPI_0o1yA",
         "rating" : 4.8,
         "reference" : "CmRRAAAAxezs4h-9RmrdpsK_WFq3MJKZccZZdxExQsJCO1CwMg6lqxMzS4-qo3ItjYhwpHwEIxzg8DREHHHfEIPQx7dNwer2FtiewXdgy-acvm_zve7G1qKL33uiqnrqFKtxgc6nEhCmAU15sU1JhDNMY1TMIW4RGhRtKE3zzCeWNxlq0m65B0HpAcrnxw",
         "scope" : "GOOGLE",
         "types" : [
            "insurance_agency",
            "health",
            "finance",
            "point_of_interest",
            "establishment"
         ],
         "vicinity" : "217 Hawksbrow Drive Northwest #10, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294491,
               "lng" : -114.1765727
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.13075463029149,
                  "lng" : -114.1748612197085
               },
               "southwest" : {
                  "lat" : 51.12805666970849,
                  "lng" : -114.1775591802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "13c9e59b7da002133aebd412a09c10f01b9c236e",
         "name" : "Hawkwood Auto Service",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "photos" : [
            {
               "height" : 734,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/115096441199182612083/photos\"\u003eHawkwood Auto Service\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAAKn-GSgcEJsdj6o_K-_ipDs43_QXAesWG-8MlZBjkoxutsNkVhwidILb6LK6dXqS9Jr_3-0ZJ08lAU6JIS_zdshM4SOnpvekoSa5a_k3hP3d2hwh5Y3cCNpvIRsfaqjrX2pM99YS8boKAh9Sq6GECMCAExNVY6nu3lsbr8hcPZk5EhC4B7A-d5TlDxnj9pwpYLZlGhRiawt1Mx1DM9hPXm5nbsnOnNasGg",
               "width" : 732
            }
         ],
         "place_id" : "ChIJdUpobcJocVMRnA8KUCd3xfQ",
         "rating" : 4.7,
         "reference" : "CmRSAAAAk9P9EfXw3RCwhBFBFwZZH7e_DFfNTcnoOBjLG_hbIYI8ODLFAF2ExI1lYb1BgL8rLez6JedLsJViFXTtAxwJ4AIoMdMRRDCntbGWA8Ju-hZMIciGgk9UA1hzUs_OkH8OEhA8KUQTHP8c6DpDRLKX6iO8GhTf8FAu9sLIkjbGEzQqXWmgIP6cHw",
         "scope" : "GOOGLE",
         "types" : [ "car_repair", "point_of_interest", "establishment" ],
         "vicinity" : "217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294104,
               "lng" : -114.1764787
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1307220802915,
                  "lng" : -114.1748182197085
               },
               "southwest" : {
                  "lat" : 51.1280241197085,
                  "lng" : -114.1775161802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "318876db5d55d4d0533480c8f3e0c5880708f83c",
         "name" : "Sudsy's U-Wash & Detail",
         "opening_hours" : {
            "open_now" : true,
            "weekday_text" : []
         },
         "photos" : [
            {
               "height" : 867,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/114920130286889550327/photos\"\u003eBrian Skinner\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAAHHKC9kYxWFGNEhGKpwsyIjCR1FB9l3c9HLen-EiqIvrpV95l2TEbpKoEU8T7L7OELIdWPFSLdRW_choX7nqn6J9dXziCeUKjj2QvX_iS-YTUGaHy9iXJldic3TUH2QRg0zZR4z3TrpSFkEQQvWloZfEtYTfJUqHhI8iJFMCvVfKEhBLp8ypCQGFqHIDlA6a74cmGhRwC5VQahqKJF_P5yktBSclU2BL_A",
               "width" : 1300
            }
         ],
         "place_id" : "ChIJuQVyDsJocVMR6kw-c1vmiJU",
         "rating" : 4.4,
         "reference" : "CmRSAAAAemtQGs_jhm0XF7LxQJtcdZu8p_5EhuRwfG61q07D16pPbbWT-c85S7ljrp85tMhfbe9E_oIoR33xRDLYNcUvaXYcYVK51P505LVFmRseIiJHaqoTCcPu2nzMbxWiHaAXEhCRjNQmGYb9YxBtiVIwP_h5GhTe08V3iaJmfSNzZ2b8HieQaO6aRg",
         "scope" : "GOOGLE",
         "types" : [ "car_wash", "point_of_interest", "establishment" ],
         "vicinity" : "217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.12945999999999,
               "lng" : -114.176603
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1307636302915,
                  "lng" : -114.1748752697085
               },
               "southwest" : {
                  "lat" : 51.1280656697085,
                  "lng" : -114.1775732302915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "8c175bf9dd1083d6b36128644d0a6cc5705034af",
         "name" : "Hawkwood Medical Clinic",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "place_id" : "ChIJdUpobcJocVMR2rMfSAkN2Po",
         "rating" : 2.9,
         "reference" : "CmRSAAAAi5fTb4pRI55TgfMCCjdxWH_GJU0pAa6a7IlZAXA5aiC6TOBh9ZK9w5r1STbreDb5uB96Jg3wT-FLLKXMTtisDL0DB-4_zhaIHIuVFvASfLwwJLL49cm4so7JnilIbZ4iEhCoIh2Ze2MhbNw1qRzZmv6JGhRuztk1ESLjYZVKF48glIuvJbXoXA",
         "scope" : "GOOGLE",
         "types" : [ "doctor", "health", "point_of_interest", "establishment" ],
         "vicinity" : "20-217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.127483,
               "lng" : -114.175335
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.12883198029149,
                  "lng" : -114.1739860197085
               },
               "southwest" : {
                  "lat" : 51.12613401970849,
                  "lng" : -114.1766839802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/bus-71.png",
         "id" : "1970d8ba1a5e7a0d81966a1c76067c3b4f9db87f",
         "name" : "NB Hawksbrow DR @ Hawkridge CO NW",
         "place_id" : "ChIJcSuWs8NocVMR1SxqmIyWUwA",
         "reference" : "ClRQAAAAHq_PYNNtGkjLLEisIBTJPspu8ExEl8LYtST3NZ9IY-rXP9BnRwex5q_9_XDVqbncZXQXHEvoKSugJu4dqG2pYLRUjhIi3TVQACJjxkYUNJUSEPxCCNYpB_aCcihykGonSIwaFIrNYx1942xFAqZSskYdXKchWkOj",
         "scope" : "GOOGLE",
         "types" : [
            "bus_station",
            "transit_station",
            "point_of_interest",
            "establishment"
         ],
         "vicinity" : "Canada"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1286881,
               "lng" : -114.1734708
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1300370802915,
                  "lng" : -114.1721218197085
               },
               "southwest" : {
                  "lat" : 51.1273391197085,
                  "lng" : -114.1748197802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "da6a8beea25c41a5858cca332d9dbbd56dbd308e",
         "name" : "Adept Engineering Ltd",
         "place_id" : "ChIJYUiPh8FocVMRh86nCX4RTH4",
         "reference" : "CmRRAAAAat1xFeM83tTsGlrDvqxSb-tpw9osl3J_odcV-P7bmxJ8CH2hDkD9x6yZqIevEBC4Sxg0QHpdbl1IbPXb7ruuTDrLSnCo8xj8riMRgMu9LpTyXQTrZfx6vO5LlnqnIUOkEhA8NPyCTJShgTxkjTEsa6ThGhSegLovjO09LgqdIYSp4vPs5oZ7Ng",
         "scope" : "GOOGLE",
         "types" : [ "point_of_interest", "establishment" ],
         "vicinity" : "451 Hawkview Manor Cir NW, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.127529,
               "lng" : -114.175761
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.12887798029149,
                  "lng" : -114.1744120197085
               },
               "southwest" : {
                  "lat" : 51.12618001970849,
                  "lng" : -114.1771099802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/bus-71.png",
         "id" : "a31ccf531701a88d1f92afebd5b5e4b4c56a09bd",
         "name" : "SB Hawksbrow DR @ Hawkwood HL NW",
         "place_id" : "ChIJLQSissNocVMRyxI05TduYz0",
         "reference" : "CmRRAAAAlK9tqEK63l_2Vt3M6aG3AN_XhqKyvnimfgZHws6r64A2o8oT5_5DHmS33J52UsKRDPc-sJw2eCkS9vOkid8hc1wlv5bvL_4gIelhdMQhPpOCxSm8x9CJJ4xCRYscyjbKEhCLOUM-fNuUzU0DsyEiLa2SGhQ9SXuUJNdHMMBCi3BdSHoYJ_yZZg",
         "scope" : "GOOGLE",
         "types" : [
            "bus_station",
            "transit_station",
            "point_of_interest",
            "establishment"
         ],
         "vicinity" : "Canada"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.128397,
               "lng" : -114.176599
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1298381302915,
                  "lng" : -114.1752193697085
               },
               "southwest" : {
                  "lat" : 51.1271401697085,
                  "lng" : -114.1779173302915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "253d9de6d42dbb1cce2512719bcc8b2aa9ac97fe",
         "name" : "Dream View Retirement Conslnts",
         "place_id" : "ChIJL0w7Q8JocVMRvxNiSZ4Ye_A",
         "reference" : "CmRSAAAAz9mlERoWnq4b2xZUoApLPpg_hycmP1P3eshXqTxXZ09s4PJwFPSB2xBrBy8vxIfsya4yr8bLmgEXTMr6_wTiIoP9VbTVkULwKBUdUSBsPwb2oMDBGTpFpSbsF2Q4VwMiEhCzovrdIs-5zTcLpC7hnczcGhSgyyorHjLchHEejtou8wMqi_IhnA",
         "scope" : "GOOGLE",
         "types" : [ "health", "point_of_interest", "establishment" ],
         "vicinity" : "4000 Hawksbrow Point Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1290236,
               "lng" : -114.1719419
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1303725802915,
                  "lng" : -114.1705929197085
               },
               "southwest" : {
                  "lat" : 51.1276746197085,
                  "lng" : -114.1732908802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "4869974deb457d352a6c1812e39f72ba26693d1a",
         "name" : "Enviro-Link Consulting Ltd",
         "place_id" : "ChIJ2WUZmcFocVMRhIRp0LLZNqU",
         "reference" : "CmRSAAAACmAK3vMKA-QBOH4o8yKP5xnNsn6fkxOkXkIQX_zWH1Ma26yzGGMwQMLh67kW1UMogPwPxhHEGuzrchLow9Nk9VUkl-cxVKCX8yALJUuhH1C5JjC-r2XwePPRJIOgFizyEhCwPllUpTw-q2_lfUmwv71PGhTd2irg6Ig1TUxMzG7BZmimujK5sQ",
         "scope" : "GOOGLE",
         "types" : [ "point_of_interest", "establishment" ],
         "vicinity" : "236 Hawkview Manor Pl NW, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1297085,
               "lng" : -114.1727938
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1310574802915,
                  "lng" : -114.1714448197085
               },
               "southwest" : {
                  "lat" : 51.1283595197085,
                  "lng" : -114.1741427802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "ed8967312372dade8751c02eaef310c9d6c4a888",
         "name" : "Hanna Consulting Group",
         "place_id" : "ChIJ6V6m7MFocVMRSNejZLJMwHE",
         "reference" : "CmRRAAAAojKI29gIuqqcaH7hZ4-2K_BjMIkZ8VxZNPvcLLoQog9cymTT11iM31_GCUZ7M6dtSLdtbs0wPwjtB4GmzBxeHBO6coLQK-aW7cERjdJXPfQ2Sfi3HlNPJZcfigMbXduaEhCNWVL8ZTl8fx2jbp02oBYaGhR9vdNJI6Cx02srveMctSxP_o_YjQ",
         "scope" : "GOOGLE",
         "types" : [ "point_of_interest", "establishment" ],
         "vicinity" : "411 Hawkview Manor Cir NW, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1260638,
               "lng" : -114.1715458
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1273591302915,
                  "lng" : -114.1701034697085
               },
               "southwest" : {
                  "lat" : 51.1246611697085,
                  "lng" : -114.1728014302915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "75bf1fe9a388e77cc43667e6710a81df589ab286",
         "name" : "Quad X Technologies",
         "place_id" : "ChIJ40YE_8NocVMR3GKvzDqRmYg",
         "reference" : "CmRSAAAATiVsW0yqqmf8O1I29jyfl13a5une0t-qy9fhzzorF6fi8NVyyZBwr3SzIdM8zkL-1xSt075064MAZtjIv5mxaaWmYv3aEeUjHQk4609w9jugoCIVUSNR3rQA7aoPnHnOEhAtG44G-F7VHdaCHWlEm9SKGhTBwpim-0WYrouuDvuaROvJLNfpkA",
         "scope" : "GOOGLE",
         "types" : [ "point_of_interest", "establishment" ],
         "vicinity" : "123 Hawksbrow Mews Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.1294491,
               "lng" : -114.1765727
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.13075463029149,
                  "lng" : -114.1748612197085
               },
               "southwest" : {
                  "lat" : 51.12805666970849,
                  "lng" : -114.1775591802915
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png",
         "id" : "560263e071d2098abaa737501de7b1c2e8312314",
         "name" : "Latin Sweets Cafe",
         "place_id" : "ChIJdUpobcJocVMRXPW64658UM4",
         "reference" : "CmRSAAAA7yscJ8feLsFqSPyqrV3Ipz-3YmayKov42dzs8JDRGRDKe1qLEXWkyvWE7kNDBLyYBXiZEwMKaY02ivtbCNZl9jkv6643nmH64Bw3v4EH6tnCHexdUaw5IU7wxydeAb3GEhAqCwcIaZKqUzVmYfK8cqOlGhSzqc6iT2gR9V59dErdFmynGEWXJw",
         "scope" : "GOOGLE",
         "types" : [ "cafe", "food", "store", "point_of_interest", "establishment" ],
         "vicinity" : "217 Hawksbrow Drive Northwest, Calgary"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : 51.11060620000001,
               "lng" : -114.1784341
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 51.1833715,
                  "lng" : -114.0624323
               },
               "southwest" : {
                  "lat" : 51.047137,
                  "lng" : -114.2713801
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "0a92e6a3c173f15aa82cd4a74e6a8166b6c577de",
         "name" : "Northwest Calgary",
         "photos" : [
            {
               "height" : 725,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/106898252596741691081/photos\"\u003eJoyce Chu\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAACqPVk5Zaby1jn0Hd6nHJGV8CKT_DsuMxBKd2_FeyXOiVJWCvE6Kdg7R_V33uWtHT4y8TOGO9guw0MM4zhbKc10jx_aY3rtxZXhY3l5lfCML2RC9ZjNCaes3_dh8Mq_CttgRrSl2Xop8oefj4zVoiwKEFt4QHge6MiUdTo_4mU0BEhAarcAG9EfWpd_yCSD_JTDbGhSld9-_-Vio7IN4OdlN2mtWR4XtuQ",
               "width" : 1600
            }
         ],
         "place_id" : "ChIJvbfbW9RocVMRsKwvANcNhZc",
         "reference" : "CmRbAAAA-lq3CoFYbxt4vJTy7j1-4MKrlvpjBG0Y7bBlbTUZdm1_2JYz40KrzeuTneI753s1EVf0_MMgi_deN9WyMDHLTae_cAVqmGQjciu3fqvKG9aYpby1ooM7Pd07lIznbb65EhAoV8uHcVpeLQ9jhZhzHzPTGhTUh0SW0qUAAubpGYho76Cp61x66g",
         "scope" : "GOOGLE",
         "types" : [ "neighborhood", "political" ],
         "vicinity" : "Hanson Ranch"
      }
   ],
   "status" : "OK"
}

假设您有一些数据

let data: Data = /* the way you get your data */

您所要做的就是将 data 解析为位置数组 [CLLocationCoordinate2D]

let results: [JSON] = json["results"].array ?? []
let array: [CLLocationCoordinate2D] = results
    .map({ [=11=]["geometry"]["location"] })
    .flatMap({ (json) -> CLLocationCoordinate2D? in
        guard let latitude = json["lat"].double else { return nil }
        guard let longitude = json["lng"].double else { return nil }
        return CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
    })

如您所见,这并不难。答案是使用 playground 测试的,结果我从你的数据中得到了 16 CLLocationCoordinate2D

完整的游乐场代码:

import UIKit
import PlaygroundSupport
import SwiftyJSON
import MapKit

let url = Bundle.main.url(forResource: "file", withExtension: "txt")!
let data: Data = try! Data.init(contentsOf: url)
let json = JSON(data: data)

let results: [JSON] = json["results"].array ?? []
let array: [CLLocationCoordinate2D] = results
    .map({ [=12=]["geometry"]["location"] })
    .flatMap({ (json) -> CLLocationCoordinate2D? in
        guard let latitude = json["lat"].double else { return nil }
        guard let longitude = json["lng"].double else { return nil }
        return CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
    })