B4J Tutorial [ABMaterial] GoogleMaps - GeoZones

ABMaterial includes the GoogleMap object (class - API exposure) to allow us to do some interesting tasks. The basics are now supported but I am sure it will expand in the future. I have implemented these basics to create a very comprehensive system. You will need your own Google Browser API key to make this work (as I have found) and include it as so in the Initialize section:


My apps (B4A and B4J) make extensive use of geographic polygons (GeoZones) that define particular sections that their users enter and exit. These zones are defined by lat/lon coordinates that describe the extent of the polygon. Each zone is defined by its' type and other properties that make the system react accordingly.

Prior to this creation (ABMaterial page), I spent 3 days with a B4A app I created to "walk" this 54 mile area and create these zones manually - in February 2016, North of 60 (up hill both ways - tundra stomping is always up hill)...

No More Field Work! Click your google map and create the exact same thing (and edit it when needed)!

Following are examples of this...

Button Bar ( All Zones, Speed Zones, Warning Zones, Show All )
These buttons show the types of zones created. When the "Show All" checkbox is checked, clicking on the buttons will show all zones of each type.

Container (Select Zone Name From Grid)
Button "New" - (see next comment / pic)
Button "Clear All" - clears the map of all polygons, polylines and markers

Grid 1 - Zone Master
Row Item - Edit [ edit definitions of this zone ]
Row Item - Delete [ Remove this zone and its' details ]

Grid 2 - Zone Details
Row Item - Edit [ change the lat/lon of selected point (marker) ]
This was tricky since you cannot select a point inside a polygon. So, I cleared the polygon and made it a polyline which allows to select a marker within (inside) the defined zone. This effectively changes the shape (extents) of the polygon.


Creating a NEW Zone

I thought it would be practical to provide a small tutorial each time a user wanted to create a new zone. At least, they would understand where they went wrong??? The Help section defines the process. Actually, it is quite simple and clever coding deals with the rest.


Each zone has an ID, Name, zone type, vehicle type.
Optionally, it can have a speed limit (when speed type), a display limit (when warning type) and a grace allowance (delay period when speed type).

Note: the vehicle type can further define the application of this zone to certain classes of vehicle (ie. ALL or "Class 8" only).

During on-site implementation - all has performed quite well.


There is much more to this framework that is better left to a real life demo.

Soon, I shall have all of my project offering available for view and test on my demo website.

A work in progress indeed - but getting there progressively with the wonderful efforts / expertise of B4J and ABMaterial!

I am still reaching out - come-on people - show us what you do with ABM! We need more inspiration!!!

Last edited:


Licensed User
Longtime User
AH! I call my buddies brother or 'brutha' all the time. I will remember that and use the new found term. Thanks!