This repository distributes a package rather than defining the complete product contract. Pair it with the owning SDK or product guide.
What this surface enables
A versioned iOS distribution package used to integrate maps, search places, tracking telematics, offline automotive, capture feedback, identity platform into an application.
No durable provider record or application workflow contract was established from the source identity or bounded document evidence; view, camera, callback, and authentication sessions alone do not make a source stateful.
Authority: Conservative Default · No durable-state signal promoted from incidental vocabularyiOS
MapsSearch PlacesTracking TelematicsOffline AutomotiveCapture FeedbackIdentity Platform
Swift
Api KeySigned Request
Prepare the integration
- An iOS project with Xcode and the package manager required by the source release
- A Mappls project key restricted to the intended app, domain, or backend
- The corresponding product entitlement enabled for the developer application
Setup and usage examples
These examples were extracted from the canonical public source document and sanitized for credential-like values. Check the source branch and package version before copying into a production application.
https://github.com/mappls-api/mappls-camera-ios-distribution.gitTopics documented by the source
01Introduction
MapplsCamera SDK is a powerful, ready-to-use camera unit for iOS that automatically captures and embeds rich geospatial metadata into photos and videos. It handles complex tasks like reverse geocoding, GPS overlay rendering, and EXIF/XMP metadata management, allowing you to integrate high-quality, geotagged media capture with minimal effort.
02Features
• Rich Geotagged Photos: Captures images with configurable GPS/Address/Timestamp overlays - Geotagged Video Recording: Records video with real-time location metadata updates - QR Code Scanning: Built-in QR mode for asset identification or URL scanning - Mappls PIN Integration: Automatically retrieves Mappls PINs (eLocs) for capture locations - Advanced Metadata: Embeds metadata into EXIF, XMP (custom namespace), and IPTC headers - Deeply Customizable: Extensive UI configuration options for overlays, branding, and camera controls - Developer Friendly: Robust delegate-based event handling and error reporting
03Dependencies
This library depends upon several Mappls's own libraries. All dependent libraries will be automatically installed using Swift Package Manager.
Below are list of dependencies which are required to run this SDK: - MapplsAPICore - Authorization and Authentcation - MapplsAPIKit - Core API functionality - MapplsMap - Map display and location services
04Swift Package Manager
To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter repository URL. See Adding Package Dependencies to Your App.
05Requirements
• iOS: 13.0 or higher - Xcode: 14.0 or higher - Mappls API Keys: You must have a valid Mappls API key to use the location and mapping features
06MapplsAPICore
It is required to set Mappls authentication information to use any Mappls SDK. Please refer the documentation here
07Required Permissions
Ensure you add the following keys to your app's Info.plist to request necessary permissions:
| Key | Description | | NSCameraUsageDescription | Required for taking photos and recording videos | | NSMicrophoneUsageDescription | Required for recording audio in videos | | NSLocationWhenInUseUsageDescription | Required to geotag your media and show your location on the map | | NSPhotoLibraryUsageDescription | Required if saveToDeviceGallery is enabled | | NSPhotoLibraryAddUsageDescription | Required to save captured media to the user's gallery |
08Sample Code
The package includes multiple ways to test and use the SDK:
09Option 1: Use Sample Library
Sample code is available as a library for integration:
10Option 2: Configuration Presets
Pre-built configurations for common use cases:
| Method | Description | Use Case | | basic() | Default settings | Quick start | | photoOnly() | Photo mode only | Image documentation | | videoOnly() | Video mode only | Video surveys | | highAccuracy() | Requires GPS ≤10m | Precision mapping | | fieldSurvey() | All metadata + grid | Field work | | qrScanner() | QR code mode | Asset tracking | | highQuality() | 4K, max quality | Professional use | | minimalUI() | Hidden controls | Embedded use | | privacyFocused() | Minimal metadata | Privacy apps |
11Sample Resources
| Guide | Time | Best For | | RUNEXECUTABLESAMPLE.md | 5 min | See all features immediately | | QUICKSTARTSAMPLE.md | 5 min | First-time integration | | HOWTORUNSAMPLE.md | 10 min | Complete integration guide | | SAMPLEUSAGE.md | 15 min | Detailed usage examples |
12Configuration API Reference
MapplsCameraViewController provides a wide range of properties to customize the capture experience.
13General Configuration
| Property | Type | Default | Description | | minimumAccuracyMetres | Float | 50.0 | Minimum GPS accuracy required to allow capture | | blockCaptureOnPoorAccuracy | Bool | false | If true, prevents capture when accuracy is worse than threshold | | saveToDeviceGallery | Bool | true | Automatically save captured media to the iOS Photo Library | | enablePinchToZoom | Bool | true | Enable or disable the pinch-to-zoom gesture | | maxZoomFactor | Float | 8.0 | Maximum zoom level allowed |
14Button Visibility
| Property | Type | Default | Description | | isFlashButtonHidden | Bool | false | Hide the flash toggle button | | isLocationPickerButtonHidden | Bool | false | Hide the nearby places / location picker button | | isMuteButtonHidden | Bool | false | Hide the audio mute button in video mode | | isGalleryButtonHidden | Bool | false | Hide the gallery / album shortcut button | | isSwitchCameraButtonHidden | Bool | false | Hide the front/rear camera switch button | | isQRScanModeHidden | Bool | false | Hide the QR scan mode toggle | | isVideoModeEnable | Bool | false | Disable video recording mode | | isPhotoModeEnable | Bool | false | Disable photo capture mode | | allowModeSwitching | Bool | true | Show/hide the mode selector (Photo/Video/QR) |
15Overlay Content
| Property | Type | Default | Description | | showAddressOverlay | Bool | true | Display reverse geocoded address on media | | showCoordinatesOverlay | Bool | true | Display Latitude/Longitude on media | | showDateTimeOverlay | Bool | true | Display capture timestamp on media | | showMapThumbnail | Bool | true | Display a map preview of the location | | showElocationOverlay | Bool | true | Display the Mappls PIN (eLoc) on media | | showQRCodeOverlay | Bool | true | Display a QR code containing location info | | showAccuracyIndicator | Bool | true | Show GPS accuracy value on the overlay | | showAltitudeOverlay | Bool | false | Show altitude (elevation) on the overlay | | showCompassBearingOverlay | Bool | false | Show compass heading on the overlay | | showMapplsLogo | Bool | true | Show the Mappls watermark logo | | showGridLines | Bool | false | Display 3x3 grid lines for composition |
16UI Styling
| Property | Type | Default | Description | | overlayPosition | Enum | .bottom | Position of the metadata view (.top or .bottom) | | overlayOpacity | Float | 0.8 | Background opacity of the metadata overlay (0.0 to 1.0) | | overlayBackgroundColour | UIColor| .white | Background color of the metadata overlay | | overlayTextColour | UIColor| .black | Color of the text in the metadata overlay | | overlayCornerRadius | Float | 8.0 | Corner radius for the metadata overlay background | | mapThumbnailStyle | Enum | .standard | Style of the map thumbnail (.standard, .satellite, .hybrid) | | brandingLogo | UIImage? | nil | Custom logo image to display on the metadata overlay |
17Media Settings
| Property | Type | Default | Description | | cameraFacing | Enum | .rear | Initial camera to use (.front or .rear) | | defaultMediaMode | Enum | .photo | Initial capture mode (.photo, .video, .qr) | | imageOutputFormat | Enum | .jpeg | Format for saved photos (.jpeg or .png) | | imageCompressionQuality| Float | 0.92 | Compression quality for JPEG (0.0 to 1.0) | | videoResolution | Enum | .hd1080p | Quality for video (.hd720p, .hd1080p, .uhd4k) | | timerDelay | Enum | .none | Countdown delay (.none, .threeSeconds, .tenSeconds) | | maxVideoDuration | Int | 0 | Maximum recording time in seconds (0 = unlimited) | | videoOverlayRefreshInterval| Int | 5 | How often (in seconds) to update GPS info during video |
18Advanced Settings
| Property | Type | Default | Description | | addressLanguage | String | "en" | Language for reverse geocoded addresses (e.g., "en", "hi") |
19MapplsCameraResult
The result object passed to delegate methods contains comprehensive metadata:
| Property | Type | Description | | mediaType | Enum | .image or .video | | filePath | String | Local path to the captured file | | latitude | Double | Decimal latitude coordinate | | longitude | Double | Decimal longitude coordinate | | formattedAddress | String | Human-readable reverse geocoded address | | eloc | String | Mappls unique identifier for the location | | timestampFormatted | String | Formatted date and time string | | accuracyMetres | Float | GPS horizontal accuracy at time of capture | | cameraFacing | Enum | .front or .rear | | tamperHash | String | A digital signature to verify media integrity |
20Error Handling
Implement the delegate method to handle potential issues:
21Additional Resources
• API Configuration Guide: APICONFIGURATION.md - Dependencies Information: DEPENDENCIES.md - Integration Guide: INTEGRATIONGUIDE.md - Mappls API Console: https://auth.mappls.com/console/
22Our many happy customers:
For any queries and support, please contact:
Email us at apisupport@mappls.com
Support Need support? contact us!
[](https://about.mappls.com/blog/)[](https://github.com/mappls-api)
[](https://twitter.com/mappls)[](https://www.linkedin.com/company/mappls/)[](https://www.youtube.com/channel/UCAWvWsh-dZLLeUU7J9HiOA)
@ Copyright 2025 CE Info Systems Pvt. Ltd. All Rights Reserved.
Service references found
URLs are sanitized during ingestion and may include documentation or legacy hosts. Use them to trace the source, not as a substitute for the current API contract.
https://www.mapmyindia.com/apihttps://github.com/mappls-api/mappls-ios-sdkhttps://github.com/mappls-api/mappls-map-ioshttps://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app).https://github.com/mappls-api/mappls-camera-ios-distribution.githttps://github.com/mappls-api/mappls-ios-sdk/blob/main/docs/v2.0.1/MapplsAPICore.mdhttps://auth.mappls.com/console/](https://auth.mappls.com/console/https://www.mapmyindia.com/api/img/logos1/PhonePe.png)[](https://about.mappls.com/blog/)[](https://github.com/mappls-api)[https://www.npmjs.com/org/mapmyindiahttps://www.facebook.com/Mapplsofficial)[](https://twitter.com/mappls)[](https://www.linkedin.com/company/mappls/)[](https://www.youtube.com/channel/UCAWvWsh-dZLLeUU7_J9HiOAhttps://about.mappls.com/api/terms-&-conditionshttps://www.mappls.com/about/privacy-policyhttps://www.mappls.com/pdf/mappls-sustainability-policy-healt-labour-rules-supplir-sustainability.pdf