B4A Library IndoorMap

This is a wrap for this github project.


IndoorMaps
Author:
DonManfred (wrapper)
Version: 1
  • BitmapLayer
    Methods:
    • Initialize (EventName As String, mapView As MapView, bitmap As Bitmap, location As PointF)
    • IsInitialized As Boolean
    • isAutoScale As Boolean
    Properties:
    • AutoScale As Boolean [write only]
    • Bitmap As Bitmap
    • Level As Int [write only]
    • Location As PointF
  • IndoorMap
    Events:
    • onMapLoaded (success As Boolean)
    Fields:
    • ba As BA
    Methods:
    • BringToFront
    • DesignerCreateView (base As PanelWrapper, lw As LabelWrapper, props As Map)
    • Initialize (EventName As String)
    • Invalidate
    • Invalidate2 (arg0 As Rect)
    • Invalidate3 (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
    • IsInitialized As Boolean
    • RemoveView
    • RequestFocus As Boolean
    • SendToBack
    • SetBackgroundImage (arg0 As Bitmap)
    • SetColorAnimated (arg0 As Int, arg1 As Int, arg2 As Int)
    • SetLayout (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
    • SetLayoutAnimated (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int, arg4 As Int)
    • SetVisibleAnimated (arg0 As Int, arg1 As Boolean)
    • addLayer (layer As MapBaseLayer)
      add layer
      layer:
    • convertMapXYToScreenXY (x As Float, y As Float) As Float[]
      convert coordinate of map to coordinate of screen
      x:
      y:
      Return type: @return:
    • isMapLoadFinish As Boolean
      map is/not load finish
      Return type: @return:
    • isScaleAndRotateTogether As Boolean
    • loadMap (bitmap As Bitmap)
    • mapCenterWithPoint (x As Float, y As Float)
      set point to map center
      x:
      y:
    • refresh
      reload mapview
    • setCurrentRotateDegrees2 (degrees As Float, x As Float, y As Float)
      set rotate degrees
      degrees:
      x:
      y:
    • setCurrentZoom2 (zoom As Float, x As Float, y As Float)
    • translate (x As Float, y As Float)
    • withFloorPlan (x As Float, y As Float) As Boolean
      point is/not in floor plan
      x:
      y:
      Return type: @return:
    Properties:
    • Background As Drawable
    • Color As Int [write only]
    • CurrentRotateDegrees As Float
      set rotate degrees
    • CurrentZoom As Float
    • Enabled As Boolean
    • Height As Int
    • Layers As List [read only]
      get all layers
    • Left As Int
    • MapHeight As Float [read only]
    • MapWidth As Float [read only]
    • MaxZoom As Float [write only]
    • MinZoom As Float [write only]
    • Parent As Object [read only]
    • ScaleAndRotateTogether As Boolean [write only]
      setting scale&rotate is/not together on touch
    • Tag As Object
    • Top As Int
    • Visible As Boolean
    • Width As Int
  • LocationLayer
    Methods:
    • Initialize (EventName As String, mapView As MapView, currentPosition As PointF, openCompass As Boolean)
    • IsInitialized As Boolean
    • isOpenCompass As Boolean
    Properties:
    • CompassIndicatorArrowRotateDegree As Float
    • CompassIndicatorCircleRotateDegree As Float
    • CurrentPosition As PointF
    • Level As Int [write only]
    • OpenCompass As Boolean [write only]
  • MapLayer
    Methods:
    • Initialize (EventName As String, mapView As MapView)
    • IsInitialized As Boolean
    Properties:
    • Image As Picture
    • Level As Int [write only]
  • MapUtils
    Methods:
    • Initialize (nodessize As Int, nodescontactsize As Int)
    • IsInitialized As Boolean
    • getBestPathBetweenPoints (points() As Int, nodes As List, nodesContact As List) As List
      get best path between points
      points:
      nodes:
      nodesContact:
      Return type: @return:
    • getDegreeBetweenTwoPointsWithHorizontal (routeList As List, nodes As List) As List
      get degrees between two points(list) with horizontal plane
      routeList:
      nodes:
      Return type: @return:
    • getDegreeBetweenTwoPointsWithVertical (routeList As List, nodes As List) As List
      get degrees between two points(list) with vertical plane
      routeList:
      nodes:
      Return type: @return:
    • getDistanceBetweenList (nodes As List, list As List) As Float
      Get the distance between points
      nodes:
      list:
      Return type: @return:
    • getMatrixBetweenFloorPlanNodes (nodes As List, nodesContact As List) As Float[][]
      adjacency matrix with points
      nodes:
      nodesContact:
      Return type: @return:
    • getShortestDistanceBetweenTwoPoints (start As Int, end As Int, nodes As List, nodesContact As List) As Float
      get shortest distance between two points
      start:
      end:
      nodes:
      nodesContact:
      Return type: @return:
    • getShortestPathBetweenTwoPoints (start As Int, end As Int, nodes As List, nodesContact As List) As List
      get shortest path between two points
      start: start point
      end: end point
      nodes: nodes list
      nodesContact: nodesContact list
      Return type: @return:
  • MarkLayer
    Events:
    • Clicked (index As Int)
    Methods:
    • Initialize (EventName As String, mapView As MapView, marks As List, marksName As List)
    • IsInitialized As Boolean
    • isClickMark As Boolean
    Properties:
    • Level As Int [write only]
    • Marks As List
    • MarksName As List
    • Num As Int
  • PointF
    Methods:
    • Initialize (x As Float, y As Float)
    • IsInitialized As Boolean
    • equals (c As Object) As Boolean
    • negate
    • setOffset (dx As Float, dy As Float)
    • setPosition (x As Float, y As Float)
    • setlength (x As Float, y As Float)
    • toString As String
    Properties:
    • length As Void [read only]
  • RouteLayer
    Methods:
    • Initialize (EventName As String, mapView As MapView, nodeList As List, routeList As List)
    • IsInitialized As Boolean
    Properties:
    • Level As Int [write only]
    • NodeList As List [write only]
    • RouteList As List [write only]
  • Testdata
    Properties:
    • Marks As List [read only]
    • MarksName As List [read only]
    • NodesContactList As List [read only]
    • NodesList As List [read only]

The Data which will be get with the Testdata helper are for the sample map the lib provided.
You need to generate you own data for your own maps.
map.png



android_mapview_1.gif


android_mapview_2.gif


android_mapview_3.gif
 

Attachments

  • IndoorMapEx.zip
    36.9 KB · Views: 625
  • libIndoorMapV1.0.0.zip
    57.4 KB · Views: 601

lomosami

Member
Licensed User
Longtime User
should be very good but the example or the wrapper isn't run properly. The example when zooming sometimes crash and other the image became black... what a pity
 

peacemaker

Expert
Licensed User
Longtime User
Hi, @DonManfred
Thanks for this lib !
How many donation should be OK, if to ask you to update the lib to be working with latest API26+ and compass sensor API ?
 

DonManfred

Expert
Licensed User
Longtime User
1. You should always start a new thread for any question.
2. I do not have the source anymore.
I need to completely rewrite the wrapper.

3. MOST IMPORTANT: Does the github project support the feature you need? If not then i´m not able to add it!
Please note that the Github project was last updated 3 Years ago; no changes has been made in the meantime.
 
Last edited:
Top