Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用swift在谷歌地图上显示坐标_Ios_Swift_Google Maps_Cllocationcoordinate2d - Fatal编程技术网

Ios 用swift在谷歌地图上显示坐标

Ios 用swift在谷歌地图上显示坐标,ios,swift,google-maps,cllocationcoordinate2d,Ios,Swift,Google Maps,Cllocationcoordinate2d,我从json api获取坐标 Alamofire.request(Constants.API.url("api/trip/"mykey"/startTrip"), method: .post, parameters: nil, encoding: URLEncoding.default, headers: header).responseJSON { (response:DataResponse<Any>) in self.progressHUD.dismiss(af

我从json api获取坐标

Alamofire.request(Constants.API.url("api/trip/"mykey"/startTrip"), method: .post, parameters: nil, encoding: URLEncoding.default, headers: header).responseJSON { (response:DataResponse<Any>) in
        self.progressHUD.dismiss(afterDelay: 0.5)
        switch(response.result) {
        case .success(_):
            guard let json = response.result.value as! [String:Any]? else{ return}
            guard let response = json["response"] as! [String:Any]? else{ return}
            guard let endCoordinates = response["end_coordinates"] as? [CLLocationDegrees] else { return }
            print(endCoordinates)
            guard let startCoordinates = response["start_coordinates"] as? [CLLocationDegrees] else { return}
            print(startCoordinates)

            let markerStart = GMSMarker(position: CLLocationCoordinate2D(latitude: startCoordinates[0] , longitude: startCoordinates[1] ))
            print(markerStart)
            markerStart.map = self.mapView

            let markerEnd = GMSMarker(position: CLLocationCoordinate2D(latitude: endCoordinates[0] , longitude: endCoordinates[1] ))
            markerEnd.map = self.mapView
            print(markerEnd)
            break

        case .failure(_):
            print("error")
            break

        }
    }
Alamofire.request(Constants.API.url(“API/trip/“mykey”/startTrip”),方法:.post,参数:nil,编码:URLEncoding.default,头:header)。responseJSON{(响应:DataResponse
//邮递员的坐标


您需要转换
CLLocationCoordinate2D
坐标中的字符串坐标数组,并创建两个标记,并将它们分配给
GMSMapView

代码

Alamofire.request(Constants.API.url("api/trip//startTrip"), method: .post, parameters: nil, encoding: URLEncoding.default, headers: header).responseJSON { (response:DataResponse<Any>) in
        self.progressHUD.dismiss(afterDelay: 0.5)
        switch(response.result) {
        case .success(_):
            guard let json = response.result.value as? [String:Any] else{ return}
            guard let response = json["response"] as? [String:Any] else{ return}
            guard let endCoordinates = response["end_coordinates"] as? [CLLocationDegrees] else { return }
            print(endCoordinates)
            guard let startCoordinates = response["start_coordinates"] as? [CLLocationDegrees] else { return}
            print(startCoordinates)

            DispatchQueue.main.async {
                let markerStart = GMSMarker(position: CLLocationCoordinate2D(latitude: startCoordinates[0], longitude: startCoordinates[1])) 
                markerStart.map = self.mapView 

                let markerEnd = GMSMarker(position: CLLocationCoordinate2D(latitude: endCoordinates[0], longitude: endCoordinates[1])) 
                markerEnd.map = self.mapView 
             }

        case .failure(_):
            print("error")
            break

        }
    }
Alamofire.request(Constants.API.url(“API/trip//startTrip”),方法:.post,参数:nil,编码:URLEncoding.default,头:头)。responseJSON{(响应:DataResponse)in
自进自退(延时后:0.5)
开关(response.result){
成功案例:
guard let json=response.result.value为?[String:Any]else{return}
guard let response=json[“response”]as?[String:Any]else{return}
guard let endCoordinates=响应[“end_坐标”]为?[CLLocationDegrees]否则{return}
打印(结束坐标)
guard let startCoordinates=响应[“开始坐标”]为?[CLLocationDegrees]否则{return}
打印(起始坐标)
DispatchQueue.main.async{
设markerStart=GMSMarker(位置:CLLocationCoordinate2D(纬度:起始坐标[0],经度:起始坐标[1]))
markerStart.map=self.mapView
设markerEnd=GMSMarker(位置:CLLocationCoordinate2D(纬度:端坐标[0],经度:端坐标[1]))
markerEnd.map=self.mapView
}
案例.失败(uu):
打印(“错误”)
打破
}
}

您想添加一个标记或显示在
UILabel
中?我想在开始坐标和结束坐标之间添加标记您的结束坐标是一个什么数组?上面我显示了邮差数据OK@viper是正常的,因为我的代码未经测试,您能发布哪些错误吗?先生,我添加了屏幕截图,还有一个错误无法转换类型值“NSArray”到预期的参数类型“CLLocationCoordinate2D”先生,我得到这个条件绑定的错误初始值设定项必须具有可选类型,而不是“CLLocationCoordinate2D”,当我使用您的代码时,它显示红点以更改代码抱歉@viper check最后一次,让我知道,现在这个代码已经测试好了,先生,现在我得到了只有一个错误此条件绑定的初始值设定项必须具有可选类型,而不是“CLLocationCoordinate2D”