5

I have used Google maps in ios app, I wanna set zoom level dynamically depends on the search i made over map. Basically am adding pins by searching with city names or lat/long query. after every search am adding pins & i need to show all added markers by the recent search i made.

friedbunny
  • 2,421
  • 1
  • 23
  • 38
Ranganatha G V
  • 415
  • 5
  • 12

2 Answers2

5
@IBOutlet weak var mapView: GMSMapView!

let camera = GMSCameraPosition.cameraWithLatitude(23.0793, longitude:  
72.4957, zoom: 5)
mapView.camera = camera
mapView.delegate = self
mapView.myLocationEnabled = true

*** arry has dictionary object which has value of Latitude and Longitude. ***
let path = GMSMutablePath()

for i in 0..<arry.count {

   let dict = arry[i] as! [String:AnyObject]
   let latTemp =  dict["latitude"] as! Double
   let longTemp =  dict["longitude"] as! Double

   let marker = GMSMarker()
   marker.position = CLLocationCoordinate2D(latitude: latTemp, longitude: longTemp)
   marker.title = "Austrilia"
   marker.appearAnimation = kGMSMarkerAnimationNone
   marker.map = self.mapView

  path.addCoordinate(CLLocationCoordinate2DMake(latTemp, longTemp))

} 

 let bounds = GMSCoordinateBounds(path: path)
 self.mapView!.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds, withPadding: 50.0))
Dipang
  • 1,111
  • 12
  • 12
1

See this answer for a simple way to iterate over a given array of markers and then set the bounds accordingly.

Community
  • 1
  • 1
friedbunny
  • 2,421
  • 1
  • 23
  • 38