私は逆方向コード関数に基づいてアドレスの配列を作成しようとしていますが、その機能については後述します。しかし、私が緯度と経度を値の配列から入力し、それを私のアドレス時代に追加するたびに、時代の秩序は常に乱雑になります。ここに私のコードは次のとおりです。配列の値の配列が異なっています
func getAddressFromLatLon(pdblLatitude: Double, withLongitude pdblLongitude: Double){
var center : CLLocationCoordinate2D = CLLocationCoordinate2D()
let lat: Double = pdblLatitude
//21.228124
let lon: Double = pdblLongitude
//72.833770
let ceo: CLGeocoder = CLGeocoder()
center.latitude = lat
center.longitude = lon
let loc: CLLocation = CLLocation(latitude:center.latitude, longitude: center.longitude)
ceo.reverseGeocodeLocation(loc, completionHandler:
{(placemarks, error) in
if (error != nil)
{
print("reverse geodcode fail: \(error!.localizedDescription)")
}
let pm = placemarks! as [CLPlacemark]
if pm.count > 0 {
let pm = placemarks![0]
print(pm.country)
print(pm.locality)
print(pm.subLocality)
print(pm.thoroughfare)
print(pm.postalCode)
print(pm.subThoroughfare)
if pm.subThoroughfare != nil {
addressString = addressString + pm.subThoroughfare! + " "
}
if pm.thoroughfare != nil {
addressString = addressString + pm.thoroughfare! + ", "
}
if pm.locality != nil {
addressString = addressString + pm.locality! + ", "
}
if pm.administrativeArea != nil {
addressString = addressString + pm.administrativeArea! + " "
}
if pm.postalCode != nil {
addressString = addressString + pm.postalCode! + " "
}
print (addressString)
addressStrings.append(addressString)
addressString = ""
}
})
}
func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
print(#function)
}
@IBAction func onSearh(_ sender: Any) {
for i in 0 ..< ((stores!.count)-1) {
print (latitudes[i])
print (longitudes[i])
getAddressFromLatLon(pdblLatitude: latitudes[i], withLongitude: longitudes[i])
}
あなたは自分のプロジェクトでこれを入力するか、または機能が私に同じ入力に対して異なる出力を与えることによって、決定論的である理由を把握することができます場合、私は不思議でしたか?
あなたの問題が何か分かりません。あなたの 'getAddressFromLatLon'関数をテストしたところ、うまくいくようです。 –