Smugs Location Menu

buzztouch plugin: Smugs Location Menu
Version: v3.0
Provides a unique method to index and display location information.
works on iOS iOS
works on Android Android
Latest Review
Pointermiku | 10/30/15 (v1.9)
One of the best. Works great on iOS and Android.
Screenshots
More Information
// 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.mov

Features:

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.zip

Alternatively, 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.zip

and take a look at this Unfinished tutorial:

https://www.marianasgps.com/public/loadScreenObjectTut.pdf

This 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"
}
]
}
}
]
}