Swift Geocode googlemap からappleの関数へ変更

このソースが動かなくなった

  /// 住所ボタン=住所の位置を登録して、登録した位置を中央に表示してピンを落とす。
    @IBAction func centerLocationFromAddress(_ sender: Any) {
//住所のnilチェック
        guard let addr = uiJusho.text, !addr.isEmpty else {
            return
        }
//Google geolocation関数呼び出し、ここが2018.2よりGoogleの仕様変更で利用できない
 //軽度緯度をAPIで取得しているだけ 下記に示す
       guard let location = GmsUtils.getLocationOf(addr) else {
            MsAlert.confirmOk(self,"MsgMapGmsGeocodeNoResponse")
            return
        }
//返却された、経度、緯度をMAPの中心に表示する関数を呼び出し
        msMapAgent?.center(point:location, animated:true)
        registarPersonLocation(location)
        //キーボードを閉じる
        textUiPlaceAdjuster.endEditing()
    }

getLocationOf(addr)

    /// 住所の位置を検索し返す
    static func getLocationOf(_ address: String) -> CLLocationCoordinate2D? {
        // address は query部分に当たるので所定のエンコードを行う
        guard let encAddr = address.addingPercentEncoding(
                withAllowedCharacters: NSCharacterSet.urlQueryAllowed),
                !encAddr.isEmpty else {
            return nil
        }

       
        
      // goole geocode サービス要求:dataが返されない事もありうる。
        let strUrl = "https://maps.google.com/maps/api/geocode/json?address=\(encAddr)&sensor=false"
        guard let url = URL(string: strUrl),
                let data = try? Data(contentsOf: url) else {
            return nil
        }
//JSONSerializationにて解析
        // 結果を解析
        guard let json = try? JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary,
            (json["status"] as? String) == "OK" else {
            return nil
        }
        guard let result = json["results"] as? NSArray, result.count > 0,
            let geometry = (result[0] as! NSDictionary)["geometry"] as? NSDictionary,
            let location = geometry["location"] as? NSDictionary,
            let lat = location["lat"] as? Double,
            let lng = location["lng"] as? Double else {
            //print("\n\(lat), \(lng)")
            return nil
        }
// ここで返却している CLLocationDegrees型で
//init(latitude: CLLocationDegrees, longitude: CLLocationDegrees)


        return CLLocationCoordinate2D(latitude: lat, longitude: lng)
    }

Appleの関数のみでの実装

  /// 検査ボタン押下
    func searchBarSearchButtonClicked(_ searchBar: UISearchBar){
        // キーボードを納め、探す場所が入力されていれば、それを探す
        self.view.endEditing(true)
        guard let adress = uiSearchLocation.text, !adress.isEmpty else {
            return
        }
        // 検索は非同期で、時間がかかることもあるのでキャンセルボタンを表示し
        // 結果が返されるまでの間でキャンセル可能とする
        searchBar.showsCancelButton = true
        CLGeocoder().geocodeAddressString(
            adress, completionHandler:geocodeComplete)
    }
  func geocodeComplete(places:[CLPlacemark]?, error:Error?) {
        self.uiSearchLocation.showsCancelButton = false
        if error != nil {
            // localizedDescription には次のような文字列が入っていた
            // The operation couldn’t be completed. (kCLErrorDomain error 8.)
            // そのまま出すとオペレータの混乱を招くので MagMsgGmsGeocodeNoResponse
            // を使う
            MsAlert.confirmOk(self,"MagMsgGmsGeocodeNoResponse")
            return
        }
        if let _places = places, !_places.isEmpty {
            if let ll = _places[0].location?.coordinate {
                self.msMapAgent.center(point:ll, animated:true)
            }
        }
    }