iOS Map View with Annotation

Here we will learn iOS map view in swift with example and how to use ios mapview to access maps and add pin annotation on the map in swift with an example using Xcode.

iOS Map View with Annotation

In iOS by using mapkit view we can create and access maps easily. By using map view in iOS we can show the standard map, satellite view map or both and it will allow users to add annotation or pin locations in map.

 

By using maps in iOS we can display the route between source and destination places in our application. We can access maps in our iOS applications by adding Mapkit reference.

 

ios map view in swift with pin annotation sample example

 

Now we will see how to use iOS MAP View in our iOS applications with example.

Create iOS MapView App in Swift

To create a new project in iOS open Xcode from /Applications folder directory. Once we open Xcode the welcome window will open like as shown below. In welcome window click on the second option “Create a new Xcode Project” or choose File à New à Project.

 

Xcode application to create ios project

 

After selecting “Create a new Xcode project” a new window will open in that we need to choose template.

 

The new Xcode window will contain several built-in app templates to implement a common type of iOS apps like page-based apps, tab-based apps, games, table-view apps, etc. These templates are having pre-configured interface and source code files. 

 

For this iOS Map View example, we will use the most basic template “Single View Application”. To select this one, Go to the iOS section in the left side à select Application à In the main area of dialog select “Single View Application” and then click on the next button like as shown below.

 

Select single view application from ios xcode templates

 

Product Name: “iPhone Articles”

 

The name whatever we enter in the Product Name section will be used for the project and app.

 

Organization Name: “Tutlane”

 

You can enter the name of your organization or your own name or you can leave it as blank.

 

Organization Identifier: “com.developersociety”

 

Enter your organization identifier in case if you don't have any organization identifier enter com.example.

 

Bundle Identifier: This value will generate automatically based on the values we entered in Product Name and Organization Identifier.

 

Language: “Swift”

 

Select language type as “Swift” because we are going to develop applications using swift.

 

Devices: “Universal”

 

Choose Devices options as Universal it means that one application is for all Apple devices in case if you have any specific requirement to run an app only for iPad then you can choose the iPad option to make your application restricted to run only on iPad devices.

 

Use Core Data: Unselected

 

This option is used for database operations. In case if you have any database related operations in your application select this option otherwise unselect the option.

 

Include Unit Tests: Unselected

 

In case if you need unit tests for your application then select this option otherwise unselect it.

 

Include UI Tests: Unselected

 

In case if you need UI tests for your application then select this option otherwise unselect it.

 

Once you finished entering all the options then click on Next button like as shown below.

 

ios create new scroll view app in swift using xcode editor

 

Once we click on the Next button new dialog will open in that we need to select the location to save our project. Once you select the location to save the project then click on Create button like as shown below.

 

Give path to save new ios application in xcode

 

After clicking on the Create button, the Xcode will create and open a new project. In our project Main.storyboard and ViewController.swift are the main files that we used to design the app user interface and to maintain source code. 

 

Main.storyboard - Its visual interface editor and we will use this file to design our app user interface 

 

ViewController.swift - It contains source code of our application and we use this file to write any code related to our app.

 

Now in project select Main.storyboard file the Xcode will open visual interface editor like as shown below.

 

ios scroll view app storyboard file in xcode

 

Now select ViewController.swift file in your project that view will be like as shown below.

 

ios scroll view app viewcontroller file in xcode

Add iOS UI Controls to View in Xcode

Now we will add controls to our application for that open Object Library. The Object Library will appear at the bottom of Xcode in right side. In case if you don't find Object library, click on the button that is in the third position from the left in the library selector bar like as shown below. (Alternatively, you can choose View à Utilities à Show Object Library.)

 

Object Library in Xcode Application to Search for UI Controls

 

As we discussed our user interface will be in Main.storyboard file so open Main.storyboard file. Now in Object library search for the Map Kit View in Filter field then drag and drop the Map Kit View into Main.storyboard ViewController like as shown below.

 

ios mapview add map kit view in storyboard file in xcode

Connect iOS UI Controls to Code in Swift

Now we will make connection between controls and ViewController.Swift code for that click on the assistant button (overlap circle) in Xcode toolbar right side corner like as shown below.

 

Assistant Editor in iOS Xcode to Mapp Controls with Code

 

To map the controls, press Ctrl button in keyboard and drag the MapView from canvas interface and drop into ViewController.swift file like as shown below.

 

ios mapview map controls to viewcontroller.swift file in xcode

 

After mapping MapView control to code we need to write custom code in ViewController.swift file to show the location in the map by adding an annotation pin that will be like as shown below.

 

import UIKit

import MapKit

 

class ViewController: UIViewController {

@IBOutlet weak var mapView: MKMapView!

override func viewDidLoad() {

super.viewDidLoad()

let latitude: CLLocationDegrees = 41.036803

let longitude: CLLocationDegrees = 28.986542

let latDelta: CLLocationDegrees = 0.01

let lonDelta: CLLocationDegrees = 0.01

let location: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)

let span: MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta)

let region: MKCoordinateRegion = MKCoordinateRegionMake(location, span)

self.mapView.setRegion(region, animated: true)

let annotation: MKPointAnnotation = MKPointAnnotation()

annotation.coordinate = location

annotation.title = "India"

annotation.subtitle = "tutlane.com"

self.mapView.addAnnotation(annotation)

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

Now we will run and check the output of the application. To run application, select the required simulator (Here we selected iPhone 6s Plus) and click on Play button, located at the top-left corner of the Xcode toolbar like as shown below.

 

Run ios scroll view application using xcode editor

Output of iOS Maps App in Swift

Following is the result of iOS Maps application. If you observe below result, we added pin annotation on map to show location details.

 

ios mapview swift app example result or output

 

This is how we can use the iOS mapkit view to show map in swift applications and we can add pin annotation for locations in a map based on our requirements.