The ProcessMaker Mobile application features a control called Geomap that gives the location of the mobile device when that device has access to a Wi-Fi or mobile data connection. The Geomap control provides real-time directions, a map and satellite imagery from many countries. When opened, the first pinned location is the user's location. When the Save button is tapped, that is the location that will be stored in the field. Always create a variable for the Geomap control when working with cases.
Note: As of June 2018, Google requires an API key to use Google Maps API functionality. The Google Maps platform no longer supports keyless usage. Because of this new Google requirement, the Geomap control no longer functions for ProcessMaker versions prior to 3.3.0.
- ProcessMaker 3.3.0 or later.
- A Google API key, ProcessMaker does not provide the required key, below are instructions to get one.
- You’ll need to enable billing on each of your projects.
Google API Key
As of June 2018, Google now requires an API key for every Google Maps API request as specified in the Standard Plan for Google Maps. For more information, consult Google's blog Building for Scale: Updates to Google Maps APIs Standard Plan or Google Maps Platform user guide.
In order to get a valid API key and signature you can use this guide Get API key and signature.
It is important to set the API key and signature in the env.ini file.
If any error message displays, consult Error Messages.
Real-Time Google Maps Properties
To see the properties of the Geomap control, click on the control in the Dynaform to display its properties in the left panel of the Dynaform.
As seen in the image below, the first property is type, which only shows the type of control (in this case "location"). The next property is variable. A variable must be created beforehand. Click the ellipsis ... to open a new window listing all previously created variables. Choose the "location" variable.
The properties id and name are filled in by default. The ID of all the controls is automatically filled in with "ControlTypexxxxxxxxxx", where "xxxxxxxxxx" represents the correlative number of the control inside the designer. The Name property is also set by default. When the Name property is changed, the name of the field on the Dynaform remains unchanged. The Label property changes the label of the control field displayed on the Dynaform; instead of having a random name, it can be changed to "Location", or any other name.
The hint property displays information about the control field in the Dynaform. The description can be entered into the white text box next to the hint property in the left panel. Use the required property to require the Dynaform user to enter a value in the field before submitting the Dynaform.
The application uses webkit tools exclusively for Android and iOS to display the form fields. Therefore, forms are not rendered the same way as in the web edition (in the preview of the designer or when running cases). The screenshot below shows the Geomap control running on the Mobile app.
This is what the Geomap control looks like when opening a case in the web edition after entering the signature in the mobile application.
If this location is stored in a variable, the location will return a string that shows the Latitude, Longitude and elevation.
Finally, the table below shows the property specifications mentioned before.
|Type||location (read only)|
Click on the ... option to select the variable from the list of available variables. Check this section to learn more about how to relate a variable to a control.
The variable used for GeoMap is going to be String.
Specify the control unique identifier.
|Name||Specify the control name. A value is set by default, but it can be edited.|
|Label||Specify the control label displayed on the Dynaform. The label value can be changed.|
|Hint||Specify the help text for the field when the it is rendered. The help text shows when the pointer of the mouse is hovered over the ? icon.|
|Required||Click to display a red asterisk next to the label to indicate that the field is required. The Dynaform user must enter a value into the control field before the Dynaform can be submitted.|