Architecture and Integration Intro

Proximi.io SDKs consists of two parts:

  1. Map visualization.
  2. Positioning.

We will discuss both parts separately in this document.


Map visualization

This is a React based library that includes the Open Street Map city-wide map data, floorplan or map tile illustration, Points of Interest data, routing calculation, advertising component and analytics on the map usage. This component works alone for interactive map usage and for visualizing routing from pre-determined point A to point B. 


Map library has limited positioning capabilities: 

    1. GPS positioning (at outdoor venues, such as amusement parks). Step-by-step navigation possible.
    2. Camera-based positioning for determining fixed starting point. Blue dot does not follow you as you walk through the venue.

Maps SDK is based on former Mapbox and later on MapLibre libraries, so the implementation is fairly simple in most cases. Route calculation also takes place on-the-device, so the SDK is capable of routing also in temporary offline mode.


The React library essentially builds a website with the map. It is possible to host this website on your own/customer domain. If preferred for easier maintenance, Proximi.io can also host the map. The domain will then be maps.proximi.io/MyMap or maps.proximi.ae/MyMap .


Documentation:

Detailed JS library: https://github.com/proximiio/proximiio-js-library

Example application code: https://github.com/proximiio/wayfinding-react-client 


Integration tips:

1) Easiest way to integrate the map the your website is just to link it. The library supports feeding in data through URL parameters, such as

  • https://maps.proximi.io/MyMap/?remote_id=IDNumber-> Opens the POI card of a specific POI
  • https://maps.proximi.io/MyMap/?kiosk=nameofthekiosk -> Opens the map in a kiosk view, with a pre-determined starting point.
  • https://maps.proximi.io/MyMap/?remote_id=ID&startFeature=ID -> Opens a whole route from A to B
  • https://maps.proximi.io/MyMap/?content=route -> Opens the map in the route planning view
  • https://maps.proximi.io/MyMap/?language=ar -> Opens the map in a specific language

2) There is a possibility to feed POI IDs also via PostMessage:

window.postMessage({type: "SET_DESTINATION", id: "feature-id"}) 


3) The easiest way to integrate the map to your website is to open in an iframe

<iframe width="100%" height="1100px" frameborder="0" src="https://maps.proximi.io/MyMap” allow="geolocation 'self' *" style="max-height: calc(100vh - 100px);"></iframe>




Positioning

Proximi.io positioning component is a Native Android and iOS SDK for indoor positioning, geofencing and location-based analytics collection. This part is only required for projects that want to utilize indoor positioning or to use advanced outdoor positioning capabilities (heatmaps, geofencing). If your project does not utilize either of those, the positioning SDK is not needed for your project.


The library feeds location data to the React-based map visualization. You can also use the positionign SDK alone, if you just need positioning (no map view is required in the mobile app or you are using your own components for the visualization). The calculation of position takes place on-the-device, which means that new data is available frequently (ever couple of seconds) and the position is also updating in temporary offline mode.


We want to be able to support you through the integration process so that it is as smooth and quick as possible. In order to do that, we request you to follow these instructions exactly. 


1. With projects utilizing indoor positioning: Always test first with Management App

If you project includes an indoor positioning installation, do the first positioning tests with the Proximi.io Management App that you receive from Proximi.io team. That way we can ensure that the application code is implemented correctly, and we can focus on verifying that your indoor positioning and navigation setup is prepared correctly.  The login credentials to the app are the same that you use for logging into the Proximi.io web portal.


2. Build the Proximi.io demo app as is

Once you have verified that your setup works as intended, take the Proximi.io demo app source code that we have shared with you, insert your API token, and try building it as is. Do not make any other changes the first time you build it. 

Your API token can be found by logging in to the Proximi.io web portal, under "Applications". Do use the mobile token in your mobile application. If you click on the key, it will pop up in a new window, where you can copy it.

When testing, always use a real device (not an emulator) to ensure the correct behaviour of the SDK.


3. Start integrating to your own app

Now that we have verified that your positioning and navigation setup is correct and that you are able to build the Proximi.io libraries correctly, you can start integrating the functionality into your own app. The demo app source code we have shared with you is free for you to use in your project. You may copy/paste the functionality you want to use into your own app or start customizing the demo app code to fit your project's style.

The sample applications are Open Source, so you can directly use them to bootstrap your own app or copy the parts you need.

Here are links to the documentation:


Positioning SDK Sample application
Android https://proximi.io/docs/android/ https://github.com/proximiio/proximiio-webview-android 
iOS https://proximi.io/docs/ios/ https://github.com/proximiio/proximiio-webview-ios 
ReactNative https://github.com/proximiio/react-native-proximiio https://github.com/proximiio/react-native-proximiio-map
Flutter https://github.com/proximiio/flutter-proximiio

https://github.com/proximiio/flutter-proximiio-map


https://github.com/proximiio/proximiio-flutter-example

4. Integration to other platforms

Is your app using a platform that is not listed above? For example Cordova, Xamarin etc? Or maybe you are interested in utilizing Proximi.io with an Augmented Reality solution, for example in conjunction with Unity or Unreal Engine?

You can still use Proximi.io platform, even if we don't have a readymade example for that.  You can plug the Proximi.io native positioning libraries into your application, build a simple bridge to your platform of choice, and feed location data into the Proximi.io map visualization.


5. Cloud integrations

If you need even more flexibility, you can also pull information and routing directly from our REST API. See documentation here: https://proximi.io/docs/rest-api/ . Just pulling data from the API is a good solution, if you e.g. only need to know the distance to a destination, or are interested in utilizing Proximi.io routes in conjunction with an Augmented reality solution.

We have also launched webhooks feature as a beta. Webhooks can send events to your server via REST interface in almost real time feed. Webhooks can be accessed via the web portal under Developer info section.
Note that the SDK does not immediately share new calculated location to our cloud. Position updates are batched, and sent to the backend in around 5min intervals for analytics purposes. If your use case requires frequent information about users' location, it is recommended to send the position udpates directly from the devices to your own backend. 

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us