As many currently know Googlemaps' Webapi do not work correctly on the webview because the latest versions use webgl
I decided to do a new library that uses OpenMap and Leaflet with the same methods and events of the Googlemaps bookshop. I also created a second OpenMapext class that adds some Googlemapsext commands to maintain compatibility and minimize changes to the existing code. The code we used with GMAPS with Javaobject to obtain extra functions is no longer usable. Tested with Java 19,
jSD_OpenMaps
Author: Star-Dust
Version: 1.08
I decided to do a new library that uses OpenMap and Leaflet with the same methods and events of the Googlemaps bookshop. I also created a second OpenMapext class that adds some Googlemapsext commands to maintain compatibility and minimize changes to the existing code. The code we used with GMAPS with Javaobject to obtain extra functions is no longer usable. Tested with Java 19,
jSD_OpenMaps
Author: Star-Dust
Version: 1.08
- CameraPosition
- Functions:
- Class_Globals As String
- Initialize (Lat As Double, Lng As Double, Zoom As Float) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato. - Target As String
- ToString As String
- Properties:
- Lat As Double [read only]
- Lng As Double [read only]
- Zoom As Float [read only]
- Functions:
- LatLng
- Fields:
- IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato. - lat As Double
- lng As Double
- IsInitialized As Boolean
- Functions:
- Initialize
Inizializza i campi al loro valore predefinito.
- Initialize
- Fields:
- MapCircle
- Functions:
- Class_Globals As String
- Initialize (vCenter As LatLng, vRadius As Double, Visble As Boolean, id As String, We As Object) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato.
- Properties:
- Center As LatLng [read only]
- ID As String [read only]
- Radius As Double [read only]
- Visible As Boolean
- Functions:
- MapInfoWindow
- Functions:
- Class_Globals As String
- Initialize (vContent As String, vPosition As LatLng, ID As String) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato.
- Properties:
- Content As String [read only]
- ID As String [read only]
- Position As LatLng [read only]
- Functions:
- MapLabel
- Functions:
- Class_Globals As String
- Initialize (vPosition As LatLng, vText As String, vPermanent As Boolean, vID As String, we As JavaObject) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato.
- Properties:
- ID As String [read only]
- Permanent As Boolean [read only]
- Position As LatLng [read only]
- Text As String
- Functions:
- MapPolygon
- Functions:
- Class_Globals As String
- Initialize (Visble As Boolean, ID As String, Point As List, we As JavaObject) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato.
- Properties:
- FillColor As Paint [read only]
- ID As String [read only]
- LineColor As Paint [read only]
- LineWidth As Int [read only]
- Points As List [read only]
List of LatLng - Visible As Boolean
- Functions:
- MapPolyline
- Functions:
- Class_Globals As String
- Initialize (Visble As Boolean, ID As String, Point As List, We As JavaObject) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato.
- Properties:
- ID As String [read only]
- LineColor As Paint [read only]
- LineWidth As Int [read only]
- Points As List [read only]
List of LatLng - Visible As Boolean
- Functions:
- Marker
- Functions:
- Class_Globals As String
- CreateLabel (Text As String) As String
Create Label on Marker - Initialize (vPosition As LatLng, vTitle As String, vIconUri As String, vVisible As Boolean, vID As String, we As JavaObject) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato. - UpdateLabel (Text As String) As String
Set Text empty for remove
- Properties:
- Draggable
- IconUri As String [read only]
- IconUrl As String [read only]
- ID As String [read only]
- Position As LatLng [read only]
- Title As String [read only]
- Visible As Boolean
- Functions:
- OpenMaps
- Events:
- CameraChange (CamPosition As CameraPosition)
- CircleClick (SelectedCircle As MapCircle)
- Click (Point As LatLng)
- MarkerClick (SelectedMarker As Marker)
- MouseMove (Point As LatLng)
- PolygonClick (SelectedPolygon As MapPolygon)
- PolylineClick (SelectedPolyline As MapPolyline)
- Ready
- RightClick (Point As LatLng)
- Fields:
- MAP_TYPE_CARTO As Int
- MAP_TYPE_ESI As Int
- MAP_TYPE_HYBRID As Int
- MAP_TYPE_NORMAL As Int
- MAP_TYPE_SATELLITE As Int
- MAP_TYPE_TERRAIN As Int
- mBase As B4XView
- Tag As Object
- WebEngine As JavaObject
- Functions:
- AddCircle (ll As LatLng, Radius As Double, StrokeWidth As Float, StrokeColor As Paint, FillColor As Paint, Opacity As Double) As MapCircle
Adds a circle To the map.
Center - Position of the circle center.
Radius - Circle radius.
StrokeWidth - Stroke width.
StrokeColor - Stroke color.
FillColor - Inner color.
Opacity - Inner color opacity. Value between 0 To 1.
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddInfoWindow (Content As String, Position As LatLng) As MapInfoWindow
Opens an info window with the given HTML content at the specified position.
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddInfoWindow2 (Content As String, Position As LatLng, MaxWidth As Int) As MapInfoWindow
Opens an info window with the given HTML content at the specified position. It cannot be larger than MaxWidth (in pixels).
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddMarker (Lat As Double, Lng As Double, Title As String) As Marker
Adds a marker to the map.
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddMarker2 (Lat As Double, Lng As Double, Title As String, IconUri As String) As Marker
Adds a marker To the map with a custom icon.
The IconUri must point To an online image Or an image from the assets folder.
In the later Case the custom icon will only appear in Release mode.
Example:
<code>gmap.AddMarker2(10, 10, "This is a test", _
File.GetUri(File.DirAssets, "SomeIcon.png"))</code>
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddPolygon (Points As List, StrokeWidth As Float, StrokeColor As Paint, FillColor As Paint, Opacity As Double) As MapPolygon
Adds a polygon To the map.
Points - A list Or Array of LatLng points.
es. array(array(41.90, 12.49),array(41.80, 12.50),array(41.85, 12.60))
StrokeWidth - Stroke width.
StrokeColor - Stroke color.
FillColor - Inner color.
Opacity - Inner color opacity. Value between 0 To 1.
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AddPolyline (Points As List, StrokeWidth As Float, StrokeColor As Paint) As MapPolyline
Adds a polyline To the map.
Points - A list Or Array of LatLng points.
Width - Line width.
Color - Line color.
CloseInfoWindow (InfoWindow As InfoWindow)
Closes the specified info window.
If you insert with a for cycle, insert a break between an insertion and the next of 5 milliseconds at least: SLEEP (5) - AllVisibleMapObjects As String
- CameraPosition As CameraPosition
Returns the current camera position. - Class_Globals As String
- ClearMap As String
- DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
Base type must be Object - EditConfigure (Offset As Double, Tollerance As Int) As String
- EditingActive As Boolean
- EditingCircle (Circle As MapCircle, Active As Boolean) As Boolean
- EditingPolygon (Polygon As MapPolygon, Active As Boolean) As Boolean
If an element is already in editing, it is not possible to edit another at the same time.
Dim Success As Boolean = OpenMap.EditingPolygon(Polygon,True) - EditingPolyline (Polyline As MapPolyline, Active As Boolean) As Boolean
- filterVisibleMapObjects As String
Makes only the objects visible inside the visible map (Bounds) - Initialize (Callback As Object, EventName As String) As String
- IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato. - IsReady As Boolean
- LatLonToXY (ll As LatLng) As Double()
- LoadMKL (Path As String, FileName As String) As ResumableSub
Return Map as Object
Key is ID , Value is Object (Marker,MapPolygon,MapPolyline)
<code>Wait For (OpenMap.LoadMKL(Path, FileName)) COMPLETE (ObjMap As Map)</code> - MapLoaded As Boolean
- MessageToPanel (Text As String) As String
- MoveCamera (cp As CameraPosition) As String
- MoveCamera2 (ll As LatLng) As String
- PanelOff As String
- PanelOn As String
- RedrawAllObj As String
- RemoveCircle (vCircle As MapCircle) As String
Removes the specified circle from the map. - RemoveInfoWindow (InfoWindow As MapInfoWindow) As String
- RemoveMarker (vMarker As Marker) As String
Removes the specified marker from the map. - RemovePolygon (vPolygon As MapPolygon) As String
Removes the specified polygon from the map. - RemovePolyline (vPolyline As MapPolyline) As String
Removes the specified polyline from the map. - SaveKML (MapObj As Map, Path As String, FileName As String) As String
- updateCircleRadius (id As String, Radius As Double) As String
NewPoint as List of LatLng - visibleObject (ID As String, Visible As Boolean) As String
es. OpenMap.visibleObject(Polygon.ID) - WebView1_LocationChanged (Location As String)
- XYToLatLng (x As Double, y As Double) As LatLng
- AddCircle (ll As LatLng, Radius As Double, StrokeWidth As Float, StrokeColor As Paint, FillColor As Paint, Opacity As Double) As MapCircle
- Properties:
- MapBound As Map [read only]
Return bound in map format:
{"northEast":{"lat":45.123,"lon":12.456},"southWest":{"lat":40.987,"lon":10.321}}
Dim Bound As Map = OMaps.MapBound - MapType
get or set the zoom level. - NumberOfElements As Int [read only]
Number Of Elements added - Zoom As Int
Sets the zoom level.
- MapBound As Map [read only]
- Events:
- OpenMapsExt
- Functions:
- AddressToLatLon (address As String) As ResumableSub
<code>wait for (GMapExt.AddressToLatLon("Address number, City")) COMPLETE (ll as LatLng)</code> - Class_Globals As String
- GetBearing (Point1 As LatLng, Point2 As LatLng) As Double
Returns the bearing between two points, from point1 to point2- not exist - GetCircleIsDraggable (Cricle As MapCircle) As Boolean
- GetDistance (Point1 As LatLng, Point2 As LatLng) As Double
Returns the distance between two points in meters - GetMarkerIsDraggable (Mk As Marker) As Boolean
- GetMarkerLabel (m As Marker) As String
not available - GetMarkerPosition (m As Marker) As LatLng
Returns the marker position as LatLng Object - GetMarkerTitle (m As Marker) As String
Returns the title of a marker as string - GetPolygonIsDraggable (Polygon As MapPolygon) As Boolean
- GetPolylineIsDraggable (Polyline As MapPolyline) As Boolean
- Initialize (OpenMap As OpenMaps) As String
Initializes the object. You can add parameters to this method if needed. - IsInitialized As Boolean
Verifica se l'oggetto sia stato inizializzato. - LatLonToAddress (lat As Double, lon As Double) As ResumableSub
- LatLonToXY (ll As LatLng) As Double()
Returns the screen coordiantes for the given LatLng coordinates - LatLonToXY2 (ll As LatLng) As Double()
- RemoveMarkerLabel (m As Marker) As String
not available
Removes the Marker Label for the given Marker - SetCircleDraggable (C As MapCircle, Draggable As Boolean) As String
Sets the circle draggable property - SetGeodesic (shape As JavaObject) As String
Sets a polygon or polyline to geodesic points - not exist - SetMarkerClickable (m As Marker, Clickable As Boolean) As String
Always clickable - not necessary
Sets the marker clickable property - SetMarkerDraggable (m As Marker, Draggable As Boolean) As String
Sets the marker draggable property - SetMarkerIcon (m As Marker, URL As String) As String
not available - SetMarkerLabel (m As Marker, Text As String, Color As String, TextSize As Double) As String
not available
Sets a MarkerLabel with the given values.
Posible color values. - SetMarkerLabel2 (m As Marker, Text As String, Color As String, BackgroundColor As String, TextSize As Double) As String
not available - SetMarkerOrigin (m As Marker, X As Double, y As Double) As String
not available
Sets the marker origin 'doesn't work!!! - SetPolygonClickable (pg As MapPolygon, Clickable As Boolean) As String
Always clickable - not necessary
Sets the polygon clickable property 'doesn't work!!! - SetPolygonDraggable (Polygon As MapPolygon, Draggable As Boolean) As String
Sets the polygon draggable property - SetPolylineDraggable (Polyline As MapPolyline, Draggable As Boolean) As String
Sets the polyline draggable property - XYToLatLng (x As Double, y As Double) As LatLng
Returns the Lat/Lng coordinates for the given screen coordinates 'doesn't work!!!
- AddressToLatLon (address As String) As ResumableSub
- Functions:
- 1.01
- Added on OpenMapsExt: SetCircleDraggable, SetPolygonDraggable, SetPolylineDraggable
- 1.02
- Coordinated renewal after movement for circle, polygon and polyline
- Update example
- 1.03
- Removal of lateral sliding bars
- Additions EditingPolygon and EdgingPolyline Method to change the points
- Added VisibleObject method to view or hide an object (markatore, circle, polygon, polyline)
- Add the PanelOn and PanelOff functions to make a communication panel appear or hide
- Added MessageToPanel method to send messages to the communication panel
- 1.04
- Fix bugs
- Added method GetMarkerIsDraggable, GetCircleIsDraggable, GetPolygonIsDraggable, GetPolylineIsDraggable
- Added method: EditingPolyline, EditingPolygon and function EditingActive
- 1.05
- Fix Bugs and update Demo
- 1.06
- Added method: RedrawAllObj, ClearMap, EditingCircle, updateCircleRadius
- Added new TypeMap: MAP_TYPE_ESI, MAP_TYPE_CARTO - As an alternative to OSM tiles if they don't appear
- 1.07
- Added method: LoadKML, SaveKML
- Removed Hyperlinks, Preserved Maps Elements after change Map_Type
- Fix bugs
- The algorithm reconstructed for the modification of the polygons, polylines and rims
- 1.08
- Added getMapBound, filterVisibleMapObjects, AllVisibleMapObjects, NumberOfElements
- Added Label on Marker
- 1.09
- Fix bugs for LoadKML, AddMarker, AddCircle, AddPolygon, AddPolyline
- Correct LatLng class field
Attachments
Last edited: