Integrating MapsIndoors into your own App
The MapsIndoors Template is a downloadable starting point for you to integrate basic usage of MapsIndoors, containing search and directions functionalities, into your existing app. If you just want to get started with a simple solution with no customisation, this should fulfil your needs. Going through this guide will also teach you some principles on how MapsIndoors interacts with an app, and is a natural next step after the "Getting Started" guides.
If you need more customisation you can implementing your own solution using the documentation found on this site, or modify this code as needed.
MapsIndoors Template is provided as is, and can be integrated into your existing app. If you need further features, or want to customize existing ones, you're free to modify this one to your needs. However, MapsPeople offers no support or responsibility for changes made.
Prerequisites
Before you get started, you need to get the API keys needed. This process is the same for both platforms.
Get Your Google Maps API key
First, you need to setup at a new project in the Google Cloud Console, just like you did in the "Getting Started" guide (Please note: You are going to need a Google Billing Account for this step, so go ahead and create one if you haven't already). When the project is created, the following APIs and the specific SDK you plan to use must be enabled from the Maps API Library Page.
Google Maps Distance Matrix API
Google Maps Directions API
Google Places API Web Service
Maps SDK for Android/iOS
When the above 3 APIs and the relevant SDK are enabled, you can retrieve the API key from the Credentials page. On the Credentials page, click Create credentials > API key.
Get Your MapsIndoors API key
If you are not a customer yet, you can use this demo MapsIndoors API key d876ff0e60bb430b8fabb145
to follow this guide, or you can contact MapsPeople to get your building drawings processed and hosted by us to receive a unique API key. For the purpose of this guide, both methods will work.
Getting Started
This app is designed to be displayed in Portrait Mode. While it will work in Landscape Mode, some UI elements may look distorted or out-of-place.
This app provides an example of how to use the MapsIndoors SDK in SwiftUI.
Download or clone the pre-made project from GitHub: https://github.com/MapsPeople/MapsIndoorsTemplate-iOS
From the terminal, in the path you cloned the repository to, run
pod install
Open the file
xxxxx.xcworkspace
in Xcode, or your editor of choiceMake a copy of the
MapsIndoors-Info-Sample.plist
file and name itMapsIndoors-Info.plist
Add your MapsIndoors API key and Google Maps API key to the
MapsIndoors-Info.plist
file and run the project
Using the Functionality in your Own App
This project is specifically built so you can easily re-use this functionality in your own application, without further issue.
To reuse the code in your app, drag and drop the
Views
andServices
folders, and all theAssets
except for theAppIcon
into your projectCreate a copy of the
MapsIndoors-Info-Sample.plist
file and name itMapsIndoors-Info.plist
Add your MapsIndoors API key and Google Maps API key to the
MapsIndoors-Info.plist
fileLook at
ViewController.swift
for an example of how to initialize the MapsIndoors SDK and use the MapsIndoors Template implementation in an UIKit app. TheViewController.swift
reads the API keys retrieved as described above from the fileMapsIndoors-Info.plist
Update your podfile so it matches the podfile in the MapsIndoors MapsIndoors Template
Developing on the new Arm-based Apple Silicon (M1) Macs requires building and running on a physical iOS device or using an iOS simulator running iOS 13.7, e.g. iPhone 11. This is a temporary limitation in Google Maps SDK for iOS, and as such also a limitation in MapsIndoors, due to the dependency to Google Maps.
Due to a bug in CocoaPods it is necessary to include the
post_install
hook in your Podfile described in the PodFile post_install wiki.
The Final Result
Summary
Congratulations! You now have a functioning map in your own app, with the ability to both search for Locations and generate directions! If you want more advanced features, check out further documentation, or modify the existing code from this tutorial to suit your needs!
Last updated