2017-05-20 1 views
0

J'ai une application qui permet à l'utilisateur d'entrer une adresse, je veux donc essentiellement servir une liste d'adresses possibles auxquelles ils pourraient faire référence et que je puisse l'utiliser sous forme lisible MapKit.Comment obtenir plus de résultats de CoreLocations geocodeAddressString?

Mon approche actuelle est donc:

extension ViewController: UITextFieldDelegate{ 

    func textFieldDidEndEditing(_ textField: UITextField) { 
     CLGeocoder().geocodeAddressString(textField.text!, completionHandler: {(placemarks: [CLPlacemark]?, error: Error?) -> Void in 
      if let placemarks = placemarks{ 
       //send placemarks to table view 
       //however, placemarks only contains one element 
       //(even when textfield contains very generic text) 
      } else{ } 
     }) 
    } 
} 

Est-ce que quelqu'un sait comment obtenir plus de résultats? En utilisant l'application Map d'Apple et en chargeant 15 résultats en entrant seulement 4 numéros, comment puis-je obtenir que mon application affiche autant de résultats? Apple utilise-t-il autre chose que coreLocation pour faire apparaître des emplacements possibles?

+0

En termes d'obtenir plus de 15, pas que je sache. Bu si la recherche est limitée à une zone particulière, je trouve parfois que l'utilisation de ['MKLocalSearchCompleter'] (https://developer.apple.com/reference/mapkit/mklocalsearchcompleter) est meilleure. Cela dépend de l'UX désiré. Voir http://stackoverflow.com/a/39948228/1271826. – Rob

Répondre

0

EDIT: Je pense que le Google Places API pour iOS devrait vous aider à obtenir ce dont vous avez besoin. Je ne crois pas qu'Apple ait une API équivalente (à moins que vous ne vouliez faire des recherches en langage simple à la MKLocalSearchRequest).

+0

obtient toujours le même résultat lors de l'expansion de la région –

+0

Edited answer, j'ai mal compris votre question. Je pense que l'API Google Adresses pour iOS devrait vous aider. – johncederholm

+0

En outre, j'ai accidentellement modifié votre question. Désolé pour ça. – johncederholm