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 of many countries. When opened, the first pinned location represent the user's location. When tapping the Save button, represents 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 the instructions to acquire one.
- You will 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, follow these steps:
Go to the Google Cloud Platform in Google Maps and then create an account.
In the left sidebar menu, select APIs and Services.
In the top navigation menu, click the select menu and then choose the New Project option.
Enter the Project name, select the Location and then click Create.
Select the project created.
In the left sidebar menu, select credentials.
Click Create Credentials and then click API key.
Save the API key created in a separete file and then click Close.
To have the maps service working, the following API keys must be enabled:
For example, to enable Geocoding API, click Dashboard and then click ENABLE APIS AND SERVICES.
Search the GEOCODING API and select it.
Repeat the process for the mentioned APIs.
It is important to set the API key and signature in the env.ini file. Note that at least the API key (
google_map_api_key) is required, while signature (
google_map_signature) is optional.
If any error message displays, consult Error Messages.
Real-Time Google Maps Properties
To view the properties of the Geomap control, click the control on 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 to 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 displayed 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 in 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 it is rendered. The help text shows when hovering the cursor 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.|