/ / तेजी से 3 में मानचित्र में एकाधिक JSON डेटा के साथ अक्षांश और देशांतर प्रदर्शित करें? - जेसन, स्विफ्ट 3, मैपकिट

तेजी से 3 में मानचित्र में एकाधिक JSON डेटा के साथ अक्षांश और देशांतर प्रदर्शित करें? - जेसन, स्विफ्ट 3, मैपकिट

मैं एकाधिक JSON डेटा प्रदर्शित करने में सक्षम नहीं हूंनक्शा में Alamofire का उपयोग अक्षांश और रेखांश। दृश्य दृश्यकीय ऐरे MapView में प्रदर्शित किया गया है लेकिन गतिशील डेटा मानचित्र में प्रदर्शित नहीं किया जा रहा है। इस समस्या को कैसे हल किया जा सकता है?

import UIKit
import MapKit
import Alamofire
import SwiftyJSON
class NearbyViewController: UIViewController,MKMapViewDelegate,CLLocationManagerDelegate {

@IBOutlet weak var mapview: MKMapView!
@IBOutlet weak var name: UILabel!

var schoolMap : [schools] = []
var scholmap : schools?

let locations = [
["title": "New York, NY",    "latitude": 40.713054, "longitude": -74.007228],
["title": "Los Angeles, CA", "latitude": 34.052238, "longitude": -118.243344],
["title": "Chicago, IL",     "latitude": 41.883229, "longitude": -87.632398]
]
override func viewDidLoad() {
super.viewDidLoad()
getschoolMapJson()
getmapSchool()


self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

}

override  func viewWillAppear(_ animated: Bool) {
mapview.reloadInputViews()
}
override func viewDidAppear(_ animated: Bool) {
mapview.reloadInputViews()
}

func getmapSchool(){

for locationn in schoolMap{
let location = CLLocationCoordinate2DMake((locationn.latitude) , (locationn.longitude))
print("lati",locationn.longitude)
let span = MKCoordinateSpanMake(10.0, 10.0)
let region = MKCoordinateRegionMake(location, span)
mapview.setRegion(region, animated: true)
let annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = locationn.name
print("namelati",locationn.name)
mapview.addAnnotation(annotation)
}
}


func getschoolMapJson(){
if (schoolMap.count > 0){
return
}

let url = NSURL(string: "http://www.myeducationhunt.com/api/v1/schools")
var request = URLRequest(url: url! as URL)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
Alamofire.request(request).responseJSON(){ response in
switch response.result{
case.success(let data):
print("success api",data)
let myresponse = JSON(data)

/*for i in 0..<self.myresponse.count{
let schools_data = schools(schoolJson:self.myresponse[i])
self.schooldata.append(schools_data)

}*/
for school in myresponse.array!{
let schoolsObj = schools(schoolJson: school)
self.schoolMap.append(schoolsObj)
debugPrint(schoolsObj)
}
//                self.mapview.reloadInputViews()
case.failure(let error):
print("Not Success",error)
}

}
}
}

यहां छवि विवरण दर्ज करें

मैं डायनामिक डेटा प्रदर्शित करने में सक्षम क्यों नहीं हूं। यह समस्या कैसे हो सकती है हल किया?

उत्तर:

जवाब के लिए 0 № 1

अपने कोड को नीचे कोड के साथ बदलें:

for school in myresponse.array!{
let schoolsObj = schools(schoolJson: school)

//Add Pin
let location = CLLocationCoordinate2DMake((schoolsObj.latitude) , (schoolsObj.longitude))
let span = MKCoordinateSpanMake(10.0, 10.0)
let region = MKCoordinateRegionMake(location, span)
mapview.setRegion(region, animated: true)
let annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = locationn.name
mapview.addAnnotation(annotation)

self.schoolMap.append(schoolsObj)

}

इसे अपने आप में स्थानांतरित करें getschoolMapJson()

उम्मीद है कि यह काम करेगा