v1.7 - March 23rd 2015
Smug Offline Maps for BTv3 Android and iOS
A Replacement candidate for Location Map (BT_screen_map) with one notable
exception: Offline Map Capability.
Accepts childItems via Control Panel, Local File, or dataURL.
Some Assembly required. You will have to create your own maps for use.
All parts required for Android are included with the plugin.
iOS users will have to download additional files, and perform some tasks prior to use.
iOS users can download those files from here:
http://www.marianasgps.com/sharedfiles/sw_olmk.zipInstructions for iOS here:
http://www.marianasgps.com/sharedfiles/SW_offlineMapKit_iOSv1.1.pdf(I will setup your project via TeamViewer for a $75 fee)
Instructions to create your own maps in Android or iOS is here:
http://www.marianasgps.com/sharedfiles/mobac.pdfAndroid users only need to create a map database, and add it to their BT_Docs. The rest is
done in the control panel.
*************************************************************************************
as of v1.5 we still have issues with the toolbar, so for the time being, it is disabled.
*************************************************************************************
*************************************************************************************
get used to the fact that Android Maps are still not *perfect*, but we're working on it.
We will be implementing the MapBox SDK for Android as soon as I make the jump to Studio.
*************************************************************************************
This plugin uses the devices native mapping functionality to show a list of locations
on map. Locations are markers with a title and sub-title. An optional icon can be
included for each location that loads another screen or shows driving directions when
it's tapped. The control panel allows other advanced adjustments to control the maps
behavior and features.
The list of locations on the map may be individually entered in the control panel or
may come from a remote file. If you're showing more than a dozen or so locations it's
best to use a remote file to supply the location data.
Version History
-----------------
v1.0 - May 25 2014
-----------------
01) Initial Release.
v1.1 - June 14th 2014
-----------------
01) Forgot to change a couple of appDelegates in iOS. Remediated.
v1.2 - June 29th 2014
-----------------
01) Forgot to change a couple of appDelegates in Android. Remediated.
v1.3 - June 29th 2014
-----------------
01) Corrected image name discrepancies.
v1.4 - July 1st 2014
-----------------
01) Corrected ‘calloutTapChoice’ issues in Android
02) Assigned default map in iOS, if none provided
v1.5 - August 13th 2014
-----------------
01) Fixed showUserLocation in iOS
02) Synchronized db name across project
03) Fixed Marker color choice (it works now)
04) Replaced default marker with one that centers ;)
05) Added 3 way data Source code (local/dataURL/config)
v1.6 - January 5th, 2015
-----------------
01) Fixed database naming issue from Control Panel (Android)
02) Fixed incorrect logging call (Android)
03) Fixed User Location; shows up now (Android)
04) Fixed childItems losing config (iOS/Android)
05) Fixed Pin Color Choices (Android)
v1.7 - March 23rd, 2015
-----------------
01) implemented new SDK to accomodate 64bit iOS
02) re-worked a bit of the annotation code in iOS
03) gutted a bunch of superfluous code.
iOS Project
------------------------
SW_offlineMapKit.h
SW_offlineMapKit.m
SW_offlineMapKit.xib
marker-red.png
TrackingDot.png
[email protected]TrackingDotHalo.png
[email protected][email protected]LoadingTile.png
LoadingTileZoom.png
Android Project
------------------------
SW_offlineMapKit.java
SW_offlineMapView.java
SW_offlineDatabaseFileArchive.java
SW_offlineMapTileProviderBasic.java
sw_offlinemapkit.xml
offlinemap-android.jar
osmdroid-android-3.0.10.jar
slf4j-android-1.5.8.jar
gaia.sqlitedb
sw_offline_map_marker_blue.png
sw_offline_map_marker_green.png
sw_offline_map_marker_purple.png
sw_offline_map_marker_red.png
sw_offline_map_youarehere.png
JSON Data
------------------------
If you manually enter the location data, the JSON data for this item in the BT_config.txt
includes a child items array holding individual map locations like this....
{
"itemId": "C129B5130DD815741E53944",
"itemType": "SW_offlineMapKit",
"itemNickname": "Offline Map",
"navBarTitleText": "Offline Map",
"showUserLocation": "1",
"showUserLocationButton": "1",
"showRefreshButton": "1",
"singleLocationDefaultZoom": "13",
"mapName": "mgpsGU",
"mapZoomLevel": "5",
"childItems": [
{
"itemId": "9E214BE8DF524F5E6031E67",
"itemType": "BT_locationItem",
"title": "My First Location",
"subTitle": "It's a great location, too",
"latitude": "13.592600",
"longitude": "144.864349”,
"calloutTapChoice": "showDirections",
"transitionType": "flip",
"pinColor": "green”
},
{
"itemId": "58DB346CC59320C616F733F",
"itemType": "BT_locationItem",
"title": "My Second Location",
"subTitle": "Not as good as the first",
"latitude": "13.528519",
"longitude": "144.898682"
"calloutTapChoice": "loadAnotherScreen",
"loadScreenNickname": "Offline Map",
"pinColor": "purple”,
"loadScreenObject: {
"itemId": "01-01-02”,
"itemType": "BT_screen”_html",
"title": "HTML file for link 2",
"subTitle": "It's a great location, 2",
"dataURL": "
http://www.yourserver.com/htmlpage.html"
}
}
]
}
If you provide location data from a remote file there is not childItems array. Instead,
the locations are pulled from a remote file then added to the map.
{
"itemId":"1111",
"itemType": "SW_offlineMapKit",
"itemNickname": "Offline Map",
"navBarTitleText": "Offline Map",
"mapName": “gaia”,
"dataURL":"
http://mywebsite.com/locationsForMap.php"
}
In this case the locations would come from a backend script at the dataURL. Loading
the dataURL in your browser would produce output like this....
{
"childItems": [
{
"itemId": "11111",
"itemType": "BT_locationItem",
"title": "My First Location",
"subTitle": "It's a great location, too",
"loadScreenWithItemId": "",
"latitude": "13.592600",
"longitude": "144.864349"
"calloutTapChoice": "showDirections",
"transitionType": "flip",
"pinColor": "green"
},
{
"itemId": "2222222",
"itemType": "BT_locationItem",
"title": "My Second Location",
"subTitle": "Not as good as the first",
"latitude": "13.528519",
"longitude": "144.898682"
"calloutTapChoice": "loadAnotherScreen",
"loadScreenNickname": "Offline Map",
"pinColor": "purple”,
"loadScreenObject: {
"itemId": "01-01-02”,
"itemType": "BT_screen”_html",
"title": "HTML file for link 2",
"subTitle": "It's a great location, 2",
"dataURL": "
http://www.yourserver.com/htmlpage.html"
}
}
]
}