Swift Google Places API添加位置->;谷歌方向API[iOS]

Swift Google Places API添加位置->;谷歌方向API[iOS],swift,xcode,google-maps,google-places-api,google-maps-sdk-ios,Swift,Xcode,Google Maps,Google Places Api,Google Maps Sdk Ios,所以我使用GoogleMapsSDK,GoogleDirections API来获取方向的JSON数据并将其绘制出来。那里一切都很好。 我使用GMSAutocompleteViewController类来实现这一点,使一切都变得超级快速和简单 我也在(或者我想是在尝试)通过带有JSON的GooglePlacesAPI以编程方式向我的特定设备添加位置。一切正常,我从JSONResponse获得OK状态 我知道,一旦发生这种情况,我应该立即将place添加到用户的Google数据库(即我的设备和我的

所以我使用GoogleMapsSDK,GoogleDirections API来获取方向的JSON数据并将其绘制出来。那里一切都很好。 我使用GMSAutocompleteViewController类来实现这一点,使一切都变得超级快速和简单

我也在(或者我想是在尝试)通过带有JSON的GooglePlacesAPI以编程方式向我的特定设备添加位置。一切正常,我从JSONResponse获得OK状态

我知道,一旦发生这种情况,我应该立即将place添加到用户的Google数据库(即我的设备和我的设备的Google数据库)。也就是说,当我转到搜索按钮时,自动完成功能弹出,我输入我分配给name参数的名称,因为它没有显示

现在我一直在看places api(autocompleteviewcontroller),看看是否有一种方法可以实现一些功能,比如ViewController.updateAllGMSPLaces或一些荒谬的东西,但到目前为止,我想不出任何东西,也找不到任何东西。很抱歉,我一整天都在这样做,所以我精疲力竭,我为这里可能出现的愚蠢行为道歉

当我实际绘制路线时,我没有包括如何处理JSONResponse,因为我觉得这与此无关(同样,我可能是错的)

我在我的viewDidLoad func中添加place POST请求:

    // prepare json data
    let json: [String: Any] = ["location": ["lat": mylat, "lng": mylong], "accuracy": 20, "name": "mumbo jump wumbo", "types": ["accounting"], "language": "en-US"]

    let jsonData = try? JSONSerialization.data(withJSONObject: json)

    // create post request
    let url = URL(string: urlString)!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"

    // insert json data to the request
    request.httpBody = jsonData

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        guard let data = data, error == nil else {
            print(error?.localizedDescription ?? "No data")
            return
        }
        let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
        if let responseJSON = responseJSON as? [String: Any] {
            print(responseJSON)
        }
    }

    task.resume()
用于自动完成ViewController功能的我的按钮侦听器:

//searching button
@IBAction func autocompleteClicked(_ sender: UIButton) {
    let autocompleteController = GMSAutocompleteViewController()

    autocompleteController.delegate = self
    present(autocompleteController, animated: true, completion: nil)
}
自动完成视图控制器:

extension ViewController: GMSAutocompleteViewControllerDelegate {
// Handle the user's selection.
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
    //print("Place name: \(place.name)")
    //print("Place address: \(place.formattedAddress)")
    //print("Place attributions: \(place.attributions)")

    //pass back long/lang to main class to do directions
    self.directionsTo(searchedLatitude: place.coordinate.latitude, searchedLongitude: place.coordinate.longitude)
    dismiss(animated: true, completion: nil)
}

func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) {
    // TODO: handle the error.
    print("Error: ", error.localizedDescription)
}

// User canceled the operation.
func wasCancelled(_ viewController: GMSAutocompleteViewController) {
    dismiss(animated: true, completion: nil)
}

// Turn the network activity indicator on and off again.
func didRequestAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
    UIApplication.shared.isNetworkActivityIndicatorVisible = true
}

func didUpdateAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
    UIApplication.shared.isNetworkActivityIndicatorVisible = false
}

我知道GoogleAddPlace已经被弃用了,但它还没有被关闭,所以我认为我可以去,对吗?如果没有,还有什么选择?我确信谷歌正在关闭它,以获得一个更好的替代方案,就像他们之前使用谷歌雷达时所做的那样。尝试使用GMSPlaceClient以这种方式添加位置,再次成功,但当我在autocompleteViewcontroller中搜索时,什么也没有:(