// v3.0 Last update March 25th 2017
***************
*** Warning ***
***************
This is an ** ADVANCED PLUGIN **
It uses technologies not well documented. It will require YOU to do some testing. Perhaps a lot of testing. Perhaps a WHOLE lot of testing.
It is *not* plug and play. It requires thought, effort and a plan.
*** THIS IS NOT A MENU IN THE TRADITIONAL SENSE ***
Read the instructions before use. Read the instructions before asking for help.
Unlike a traditional menu, Smug's Location Menu allows you to list 'Points of Interest'
in a customized table view with search capability, and sorting capabilities.
Each record can display 'some' useful information about each location.
Here's a demo video:
https://www.marianasgps.com/public/SmugLocationMenuDemo.movFeatures:
Sort Ascending or Descending by Name, Category, or Distance
Distance is dynamically calculated each time the screen is loaded. (calculated from location geocoordinate to device geocoordinate)
Display distance in Kilometers or Miles
"Range" feature allows you to Display locations within XXX miles (only within 10 miles, etc…)
Pressing the menu choice can take to you any screen ** via loadScreenObject **
This plugin does NOT utilize 'control panel' based childItems. You *must* have either a
dataURL or a local file contained in your project bundle. It can only be one or the
other; not both. The plugin autodetects filename vs URL by the letter key "http" in the
dataURL field, so ensure your filename does not contain that sequence of letters, or
an error may occur. You can get a tool for self hosted that accomplishes this at
https://www.marianasgps.com/public/sjcon.zipAlternatively, Stobes tools are very useful for these situations as well.
http://idevdepot.com/category/buzztouch-tutorials/stobes-buzztouch-tools/mapmaker-tool/(There is 'no' all in one tool. regardless of method, there is going to be some assembly required)
This plugin uses 'LoadScreenObject' methods to display the next screen. Be certain you
understand this concepts before using this plugin. In the beginning you may hate me, but
eventually you'll thank me for it.
Ever played with loadScreenObject? Peruse these files:
https://www.marianasgps.com/public/loadScreenObject.zipand take a look at this Unfinished tutorial:
https://www.marianasgps.com/public/loadScreenObjectTut.pdfThis project is compatible with BTv2/3/4 iOS and Android only.
For heavens sake if you don't know what it is or what it does, *** don't buy it! ***
Revision History:
v1.0 - 18 April 2014
--------------------
initial release
v1.1 - 19 April 2014
--------------------
01) added xib support for iPad
02) cleaned up after myself
v1.2 - 28 April 2014
--------------------
01) added a bit of error correction using map locations as menu items.(iOS)
v1.3 - 21 June 2014
--------------------
01) fixed a math issue calculating Android Distance
v1.4 - 29 June 2014
--------------------
01) fixed erroneous icon reference in Android XML File. My bad. Oops.
v1.5 - 1 July 2014
--------------------
01) fixed issue of blank subcategory for Android
02) fixed issue of blank subcategory for iOS
v1.6 - 3 November 2014
--------------------
01) fixed issue of loadScreenWithItemId for iOS
v1.7 - 19 November 2014
--------------------
01) fixed issue of loadScreenObject for iOS
v1.8 - 15 March 2015
--------------------
01) fixed issue in Android where filtered menu items selected ‘wrong’ menu item.
v1.9 - 30 October 2015
--------------------
01) fixed issue in Android where dataURL was not correctly parsing.
v2.0 - 2 December 2015
--------------------
01) found illegal character in Android; fixed.
02) added notes for Android Studio use.
v4.0 - 25 March 2017
--------------------
01) updated iOS for BTv4
02) updated Android for BTv4
iOS Project
------------------------
sw_banner_tumon.png
SW_distance_k.png
SW_distance_m.png
SW_locationmenu_cell_i4.xib
SW_locationmenu_cell_i5.xib
SW_locationmenu_cell_i6.xib
SW_locationmenu_cell_i6p.xib
SW_locationmenu_cell_ipad.xib
SW_locationmenu_cell.h
SW_locationmenu_cell.m
SW_locationmenu_cell.png
SW_locationmenu_item.h
SW_locationmenu_item.m
SW_locationmenu.h
SW_locationmenu.m
Android Project(s)
------------------------
Describe what files are necessary for the plugin to work in an Android project.
SW_locationmenu.java
SW_locationmenu_item.java
sw_locationmenu.xml
sw_locationmenu_cell.xml
SW_distance_m.png
SW_distance_k.png
Sample JSON Data
------------------------
sample file: locationMenuItems.txt included in plugin zip file.
------------------------
{
"itemId": "10SWLMMLWS01",
"itemType": "SW_locationmenu",
"itemNickname": "Location Menu",
"navBarTitleText": "Location Menu",
"navBarStyle": "solid",
"contextMenuNickname": "Location Sort",
"contextMenuItemId": "2A23E871D7DD3CC3822912B",
"loginRequired": "0",
"backgroundColor": "clear",
"tvFooterString": "©2014 Marianas GPS, LLC",
"hideFromSearch": "0",
"audioFileName": "mysong.mp3",
"audioNumberOfLoops": "0",
"sw_distanceDisplay": "m",
"hideTabBarWhenScreenLoads": "0",
"dataURL": "
http://www.yourserver.com/childitemsjson.txt",
}
Sample childItems file
-------------------------
{
"childItems": [
{
"itemId": "SW439",
"itemType": "SW_loc_detail",
"itemNickname": "Cost-U-Less Tamuning",
"iconName": "sw_0x2e00.png.png",
"titleText": "Cost-U-Less Tamuning",
"descriptionText": "Chalan San Antonio",
"latitude": "13.49164",
"longitude": "144.78135",
"categoryText": "Shopping",
"subCategoryText": "",
"loadScreenObject": {
"itemId": "1-SW439",
"itemType": "BT_screen_map",
"itemNickname": "Cost-U-Less Tamuning",
"navBarTitleText": "Map: Cost-U-Less Tamuning",
"singleLocationDefaultZoom": "15",
"defaultMapType": "hybrid",
"childItems": [
{
"itemId": "CI1-SW439",
"itemType": "BT_mapLocation",
"latitude": "13.49164",
"longitude": "144.78135",
"title": "Cost-U-Less Tamuning",
"subTitle": "Cost-U-Less Tamuning",
"pinColor": "green",
"dataURL": "
http://www.yourserver.com/wb_addons/maps/map_details.php?appGuid=guampoidataset1&mapGuid=SW439"
}
]
}
},
{
"itemId": "SW472",
"itemType": "SW_loc_detail",
"itemNickname": "Dededo Flea Market",
"iconName": "sw_0x2e00.png.png",
"titleText": "Dededo Flea Market",
"descriptionText": "North Marine Corps Drive (Route 1)",
"latitude": "13.51516",
"longitude": "144.83482",
"categoryText": "Shopping",
"subCategoryText": "",
"loadScreenObject": {
"itemId": "2-SW472",
"itemType": "BT_screen_map",
"itemNickname": "Dededo Flea Market",
"navBarTitleText": "Map: Dededo Flea Market",
"singleLocationDefaultZoom": "15",
"defaultMapType": "hybrid",
"childItems": [
{
"itemId": "CI2-SW472",
"itemType": "BT_mapLocation",
"latitude": "13.51516",
"longitude": "144.83482",
"title": "Dededo Flea Market",
"subTitle": "Dededo Flea Market",
"pinColor": "green",
"dataURL": "
http://www.yourserver.com/wb_addons/maps/map_details.php?appGuid=guampoidataset1&mapGuid=SW472"
}
]
}
}
]
}