Wie zum extrahieren von Straße, Stadt, etc. von GMSPlace Adresse-Komponenten
Ich bin mit Google Places API für iOS und erfolgreich abrufen von Orten in der Nähe und Gegenwart der Adresse als string. Was ich versuche zu tun, ist extrahieren-Adresse Komponenten wie Stadt, um in einer Datenbank zu speichern.
Die Dokumentation zeigt eine GMSPlace hat eine addressComponents-Eigenschaft (ein array), aber ich kann nicht scheinen, um herausfinden, wie man diese Eigenschaft verwenden.
Den code unten stellt stellt die gesamte Adresse auf den text von einem label, aber ich kann nicht darüber hinaus:
Bearbeiten ---- code Hinzugefügt, der zeigt, wie ich versuche, die access-Komponenten
venueLabel.isHidden = false
venueLabel.text = selectedPlace?.name
addressLabel.isHidden = false
addressLabel.text = selectedPlace?.formattedAddress
let addressComponents = selectedPlace?.addressComponents
for component in addressComponents! {
let city = component["city"] //Error Type GMSPaceAddressComponent has no subscript members
print(city)
}
- teilen vollständigen code, bitte.
- Alle details
addressComponents
erwähnt sind in den API-docs. Finden Sie unter diesem developers.google.com/places/ios-api/reference/... - gerade geschnitten mit zusätzlichen code
- Sie müssen die check-Komponente.type == "Stadt" dann ermittelt werden, die Komponente.name für Stadt-information
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen sicheren Swift 4.2 Lösung:
selectedPlace.addressComponents ist ein array von GMSAddressComponent, die haben 2 Eigenschaften, Typ und name.
In den Fall wird es wie
GMSAddressComponent ist eine Klasse, die nicht ein dictionary oder array, das Sie diese Fehlermeldung bekommen.
Zusätzliche Komponente können Arten bezeichnet werden, die aus der link.
types
array-Eigenschaft anstelle dertype
auf GMSAddressComponent. Überprüfen, um zu sehen, ob das array enthält die kGMSPlaceTypeLocality geben. Die verschiedenen GMSPlaceTypes definiert sind GMSPlaceTypes.h in v3.1.0 der Google Places-SDK für iOS. Happy coding!Swift 4
Konnte ich nicht finden, das überall für Objective-C, für diejenigen, die Folgen hinter mir:
Für die neuesten Google Places API (Juli 2019) das ist, was Ihnen helfen könnte.
Eigentlich ist Google nun dabei, ein paar Arten für jedes element. So kann der "type" ist veraltet und wird von "Typen" ist neu eingereicht.
Können Sie etwas wie das hier tun:
Fand ich diese, ich hoffe, dass ich dir helfen