通过一些在线帮助,我成功地在我的iOS应用中实现了一些Google地图功能。
extension GoogleMapViewController: GMSAutocompleteResultsViewControllerDelegate {
func resultsController(resultsController: GMSAutocompleteResultsViewController,
didAutocompleteWithPlace place: GMSPlace) {
searchController?.active = false
// Do something with the selected place.
print("Place name: ", place.name)
print("Place address: ", place.formattedAddress)
print("Place attributions: ", place.attributions)
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
let camera = GMSCameraPosition.cameraWithLatitude(-33.86, longitude: 151.20, zoom: 6.0)
let mapView = GMSMapView.mapWithFrame(CGRect.zero, camera: camera)
mapView.myLocationEnabled = true
view = mapView
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = place.formattedAddress
marker.map = mapView
}
}
我相信我的搜索栏中有place.formattedAddress
,但如何检索其坐标以便我可以设置相机和标记以显示搜索到的位置?
答案 0 :(得分:1)
根据他们的documentation,您可以使用place.coordinate
let currentPlace: CLLocationCoordinate2D = place.coordinate
然后您可以将其经度和经度分别设为currentPlace.latitude
和currentPlace.longitude
答案 1 :(得分:1)
To set the camera position at particular place , first we have to declare a object of CLLocationCoordinate2D and then get the latitude and longitude of that particular place .
var currentPlace:CLLocationCoordinate2D = place.coordinate
Now you are able to get the latitude and longitude by writing currentPlace.latitude and currentPlace.longitude .
Since you have lat/lon , you can easily set the camera position on that place .
let camera = GMSCameraPosition.cameraWithLatitude(currentPlace.latitude, longitude: currentPlace.longitude, zoom: 6.0)
let mapView = GMSMapView.mapWithFrame(CGRect.zero, camera: camera)
mapView.myLocationEnabled = true
view = mapView
答案 2 :(得分:0)
func resultsController(resultsController: GMSAutocompleteResultsViewController,
didAutocompleteWithPlace place: GMSPlace) {
searchController?.active = false
// Do something with the selected place.
print("Place name: ", place.name)
print("Place address: ", place.formattedAddress)
print("Place attributions: ", place.attributions)
// Create a GMSCameraPosition that tells the map to display the
let camera = GMSCameraPosition.cameraWithTarget(place.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
let mapView = GMSMapView.mapWithFrame(CGRect.zero, camera: camera)
mapView.myLocationEnabled = true
view = mapView
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = place.coordinate
marker.title = place.formattedAddress
marker.map = mapView
}