The MazeMap webview allows you to send in custom location updates, allowing you to define where the blue dot should be shown.
This is done by performing a Javascript command in the MazeMap webview.
300pxPerforming JavaScript commands in a webview
In Android, use WebView.postWebMessage to send the message. If you must support an older Android SDK which does not implement postWebMessage, you can alternatively use evaluateJavascript(), e.g.:
String js = "var msg={ ... }; window.postMessage(msg,'*');"; webview.evaluateJavascript(js);
In a similar fashion, evaluateJavaScript() can be used in iOS:
String js = "var msg={ ... }; window.postMessage(msg,'*');"; wkwebview.evaluateJavaScript(js);
The Javascript Command
var msg = { type: 'MM_INJECTABLE_LOCATION_UPDATE', data: { latlng: { lat: 63, lng: 10.5 }, accuracy: 500, // In meters mm_z: 3, // Optional numerical z-level } }; window.postMessage( msg, '*' // The "origin" of the destination window, which can be // replaced by the domain name of the currently loaded webpage. );
Coordinates
The coordinates must be WGS84 latitude and longitude values.
If you are using a third party location source/SDK that provides coordinates in another format, you will need to convert them before sending them to into the MazeMap web view
Z Level (mm_z)
Z level is a MazeMap-proprietary value that defines floors/altitude.
Third party location providers will likely use their own proprietary floor level or floor ID values.
You may need to create and maintain a mapping between MazeMaps z-levels and the third party providers floor IDs.