Mapping Optimal Routing Directions

posted Jun 8, 2018, 5:48 AM by Faustino Rodriguez   [ updated Sep 4, 2018, 10:27 AM ]

The Goal

When adding the Routing feature to the Mapping web app our single and unique goal is to Sort the right-side Listing following the optimal route.

The Scope
  1. The Routing feature is disabled by default,
    1. You have to opt-in by selecting "Enable Routing on Listing", under the add-on Preferences, Routing
    2. You would need an active advanced premium plan subscription to use the Routing feature

  2. The routing would work only from 2 up to 25 locations including origin and destination

  3. The optimal routing has two optional types
    1. From First to Last [selected] locations on the Listing
    2. Roundtrip (or Start / End) at a predefined Homebase location

  4. The Mapping web app would work with the predefined settings from the add-on Preferences (Routing)

  5. After narrowing down the locations showing on the Listing, by using the available Filters, you would have the choice of
    1. Exclude specific locations from the Listing, either to get within the allowed limit or because some locations are not part of your target for routing
    2. Set the First and Last in Route (origin and destination). If no First or Last in Route is selected the Mapping would set First and Last as showing in the Listing

  6. In addition to sorting the Listing locations following the optimal route, there are some other features like,
    1. An optional "Show Directions panel switch" button, that would list step-by-step route instructions. When you click an entry in the Directions panel, it would show the corresponding point in the map
    2. And optional "Export to new tab" button, that would show the Listing in a new tab, each with a go-to direction link. Additionally a link to show directions on Google Maps and optionally the route instructions.
    3. First and Last locations, when set, would have a background color "green" and "red" -like accordingly
    4. An optional choice to drag and drop the Homebase location icon on the map

  7. Limitation on using the Routing feature
    1. At this moment the Routing is not available if the Mapping web app is embedded in another web page or website.

  8. The screenshot below shows most of these features and options

Your Feedback

You would need an active advanced premium plan subscription to use the Routing feature.


The Settings

New Features Roadmap

posted Feb 20, 2018, 4:10 PM by Faustino Rodriguez   [ updated Feb 26, 2018, 1:22 PM ]

The Mapping Sheets add-on and the Mapping web app were built out of our client requirements, and they have grown on the last few years thanks to your valuable feedback and support.

With the idea of adding some predictability and confidence in the future of this solution, we have put together this simple page with the new features roadmap we are already working on, including also those we are still dreaming about.

Stable in  production (deployed)

All stable and documented features, for both the Mapping Sheets add-on and the Mapping web app, are listed in the Google Add-ons store and in the add-on main page.

Going live (deploying)

These features are either already live or deploying soon, but not yet listed in the store

+ Find a place, draw a circle around, with option to filter locations within its boundaries
+ Set the optional data headers row in case it's not the row #1 as default
+ Define a Location Template using placeholders for headers if the full address is split across several columns
+ Set and apply a custom style definition for your map, with thousands available online

Working on it (developing)

+ Marker Clusters ... for better performance and navigation
+ Faster filtering by using a debounce asynchronous function
+ Filter for a value greater than a number,  like a standard slider with the active section on the right
+ Filter for a range of numbers, like a standard slider with two thumbs
+ Improve map sharing workflow with a prompt dialog and detailed documentation

Waiting in the Queue (designing)

Filter for date value (equal to a date), dates must be on yyyy-mm-dd format
+ Filter for a date range (from to dates), dates must be on yyyy-mm-dd format 
+ Optimal route with options for round trip and start/end locations on Listing
+ Change the icon shape based on a selected column values, while keeping the filter's color

* Unattended time-based BUILD if something has changed in the datasheet within an hour
+ Apply a weight factor to each icon, depending on a selected column values, either as a circle around or icon scale
+ Other map layers like polygons, heatmap, overlays, etc

Wishlist but doable (dreaming)

* Real time map update on form submit new data

Notes on recent (ongoing) Quiz

When asking for your feedback on
"Which feature do you most want to see implemented in 2018 on the Mapping Sheets add-on?"

After processing hundreds of responses to our recent quiz, the top three (3) requests are about:

1. Routing (directions and optimal route for a list of locations)
2. Sharing (better workflow and documentation on how to share my map)
3. Documentation (improve, organize, consolidate, simplify)

Other relevant requests are: Unattended Build (map auto update), Other Filter Types, Other Map Layers, More Icons, Overlapping Icons, Export Map and Listing

How to share my map

posted Feb 16, 2018, 11:33 AM by theXS Assistant   [ updated Feb 26, 2018, 10:23 AM by Faustino Rodriguez ]

In addition to send them the full link (Url) of your map, you have to share that .json file (your map data file) in your Google Drive for View access with them

1. To share your map, share the .json file with anyone you want to allow to view (access) your map. You can do this from the add-on sidebar > ⋮ menu > Share my map.

2. Then, send them the full link (url) to your map so they can open it.


Background notes

- When you click BUILD in the Mapping Sheets add-on, it creates a .json file in the xsMapping folder in your Google Drive, ready for mapping using the Mapping web app
- The name of that .json file is based on the spreadsheet and sheet names for easy recognition as follows:
- By default, your map is private (only you, the owner, can access it) 
- If you want to share your map with others, you have to share that .json file with them with “Can View” access
- The “Share my map” option (in the ⋮ menu in the add-on sidebar) will open the G Drive sharing settings for that .json file. Add the Google accounts (emails) you want to give access to your map.
- Please note: If you delete the .json file or change the name of your spreadsheet or datasheet, the add-on will create a brand new .json file that you will have to share again
- Alternatively, some people just share the xsMapping folder with others, so they will have access to all your maps if you send them the map link
- The map link ends with a scrambled ID (e.g. “?fid=long-scrambled-id”) that is very hard to guess if you don't have the full link
+ Find more details and a workflow diagram 'from Sheets to Drive then Mapping' on this page:

The map link (Url) consists of two parts
- the Mapping web app Url:
- And your .json file id as a parameter

The .json file in your Google Drive is created when you click on BUILD button and it contains all the settings and data of your map, ready to be open by the Mapping web app

In addition to send them the full link (Url) of your map, you have to share that .json file in your Google Drive for View access with them, as follow

- In the Mapping Sheets add-on after building your map, open the 3-dot menu in the sidebar top-right corner

- Then select "Share my map"

- It will take you to the Google Drive sharing settings for your .json file (your map data file) as shown below

- Select "Can view" as the access level and enter the Google account emails of the persons you want to view your map, then click Done

- If you anybody to view your map without having a Google account, you would have to share the .json file for Public or Anyone with the link can access
Click Advanced, then select the Link sharing option you want

Using multiple columns for Geocoding with a Location template

posted Sep 5, 2017, 4:37 PM by Faustino Rodriguez   [ updated Sep 6, 2017, 10:25 AM ]

In most cases, you might have the full address for Geocoding under a single column, like showing below

100 City Centre Dr, Mississauga, L5B 2C9, Canada

In those cases you only need to select the column Address as the Location, in the sidebar (partial screenshot below)

However, it might be the case you have the full address split across several columns, like showing below for the same place

100 City Centre DrMississaugaL5B 2C9

In that case you can combine several columns and even include some static content, instead of just using the column Address.

You can try as follow, using the same headers example
  1. Select the column Address as the Location as you did before

  2. Select Preferences from the 3-dot menu in the sidebar and then select the Document option from the menu

  3. Finally create the Location template there to combine the headers Address, City and Postcode, also adding the country Canada (assuming all the locations are in the same country), as follow:
    {{Address}}, {{City}}, {{Postcode}}, Canada

    The text between {{  }} could be any of the headers in your Sheet
  4. When building a new map, this template will produce an address for Geocoding matching the full address (e.g. 100 City Centre Dr, Mississauga, L5B 2C9, Canada)

Please, try this feature first with a few rows of data, until you get the desired results, to avoid unneeded calls to the Google Geocoding service

Styled Google Map on the Mapping web app

posted May 8, 2017, 12:38 PM by Faustino Rodriguez   [ updated Mar 4, 2018, 7:51 AM ]

The Mapping web app accepts styled map definitions for Google Maps.
The extra custom Styled map option will appear right beside the standard Map and Satellite styles, for you to choose or even set as the default option.

As described on this page styled map definition is an array of three types of objects (featureType,  elementType, stylers) with scopes and properties, that combined produces an amazing effect.

You won't need to be an expert on map colors, just search on the Snazzy Maps repository (or other of your preference) for the styled map that matches your requirement. There are over 11,000 styled map definitions and counting.

When you find "your matching style", if you are using the Mapping Sheets add-on, you just need to copy the code (click expand-code button, select all from [ to ] both included, copy) and then paste it on Preferences > Map > Styled map definition input box. Optionally select to set this style as the Default on loading and save.

On your next BUILD you would get the Style option on your map.

See a simple sample below, copied from this page to get an idea of the structure
    "featureType": "all",
    "elementType": "all",
    "stylers": [
        "visibility": "simplified"
    "featureType": "all",
    "elementType": "geometry.stroke",
    "stylers": [
        "visibility": "simplified"
    "featureType": "all",
    "elementType": "labels.icon",
    "stylers": [
        "visibility": "off"

Thanks to Snazzy Maps for providing such a wonderful tool, for the rest of us.

p.s. The styled map definition array for the Mapping web app, is just a key entry in your .json data file with this path: custom > styledMap. Optionally set custom > styledMapDefault as true

Mapping Sheets is splitting into ...

posted Mar 28, 2017, 10:11 AM by Faustino Rodriguez   [ updated Mar 29, 2017, 4:15 AM ]

We are announcing an upcoming change!

Mapping Sheets is splitting into:
- The Mapping Sheets add-on
- The Mapping web app

First, the Mapping Sheets add-on will read your data from Google Sheets and create a .json file on your Google Drive. Then, the Mapping web app will process the .json file and plot your data directly onto a map. You can get your data from Google Sheets and onto a map in just a few clicks.

We’re also introducing a Basic Free Plan and an Advanced Premium Plan for Mapping Sheets add-on users. We made this choice as a way to sustain this project and to keep making it better for you. We want to continue providing a high level of service and support to all of our users.

Don’t worry, the Basic Free Plan will still have plenty of features—but the Advanced Premium Plan will have new, exciting features that we think you’ll love.

Otherwise, the Mapping web app is free to access, publicly available with no fee, no credentials are required for access, and the code is available on GitHub, for anyone to use.

Here are the new Mapping Sheets add-on plans:

➧ Basic Free Plan: Up to 50 locations per map. Includes all the basic (−) features.

➧ Advanced Premium Plan: No restrictions in the number of locations per map. Includes all the basic (−) and advanced (+) features.

(†) Disclaimer: The Advanced Premium Plan does not avoid service errors, limitations and quotas like Google Geocoding daily quota, Google Drive maximum file size, etc.

The Mapping Sheets add-on Advanced Premium Plan contribution is USD $25 / year

These changes will be going live soon, and the current Beta version will no longer be available after that.

Please, let us know your questions and comments by submitting your feedback.

G Suite Business: A few new very compelling reasons to upgrade

posted Mar 14, 2017, 5:21 AM by Faustino Rodriguez   [ updated Mar 14, 2017, 5:25 AM ]

As Google Next 2017 event closed up last week, I have gather a few news among the many, where Google is showing their focus on your Business

The top 5 in my view, that will make you switch to G Suite Business (formerly Google Apps Unlimited)

1. Team Drives - a Drive space for each team / project
* The files owner is the Team, not each file creator user
* Quick access powered by machine learning

2. Drive File Stream - quickly stream files directly from the cloud to your computer
* No more Google Drive local syncing, on demand data stream from the Cloud to your local app

3. Vault for Drive, Teams and Groups - eDiscovery and retention / archiving solution
* As for Gmail, now including content retention for Drive and Team Drive files

4. Hangouts Meet and Chat - new enterprise ready communication tool
* 30-person easy access video conferences without accounts, plugins or downloads
* Virtual chat rooms for each team / project, fully integrated and searchable

5. Gmail add-ons - your other apps functionality within Gmail
* Expect your preferred apps (CRM, PM, Accounting, etc) coming to Gmail as "a card"

Resources for further review:
- Top 5 for G Drive Introducing new, enterprise-ready tools for Google Drive
- Hangouts Meet and Chat: Meet the new enterprise-focused Hangouts
- More? 100 announcements (!) from Google Cloud Next '17
(see 45-54 for G Suite related)

Warning: Problem loading the .json data file for mapping

posted Nov 7, 2016, 9:52 AM by Faustino Rodriguez   [ updated Jun 11, 2018, 4:05 AM ]

If you are reading this post, you probably received the warning message below when opening the Mapping web app: 

What's a .json data file?
The .json data file is the map data file that the Mapping Sheets add-on creates in the xsMapping folder in your Google Drive. The Mapping web app reads that data file using an ajax call.

How do I solve this problem?
  1. You might not have access to the map data file because the map was built by someone else.
    > Ask that person to share the json data file or the whole xsMapping folder with you (at least with View access).

  2. You are logged into the browser with multiple Google accounts and are not using the default account.
    > Switch to your default account, or
    > Share your map with the other accounts you are using.
          If you want to Share your map with others, share the xsMapping folder or the specific json map data file with those users.
          If you want the map to be Accessible by anyone, you can make the folder or the json file Public (Anyone can view).
    > How do you know if you are logged in with multiple accounts? See more details at the bottom of this page.

  3. You might have an invalid json data file. This could be caused by the following issues:
    > No proper headers in the first row.
    > Invalid characters within your content (e.g. 
 Unicode 0x2028).

  4. Some users have reported other situations provoking this issue, like:
    > The Privacy Badger extension may block the ajax call. Turning it off for the Mapping app page usually solves the issue.
    > When ON, Bitdefender and the "Web-protection, against phishing toggle" may cause blockage.
    > AdblockPlus may block resources from loading.

  5. Some instances on the Safari browser have caused this warning in the past:
    When the .json data file is not Public, Safari may show a "Too many http redirects" error when accessing the data file. We still don't know the root cause of this, but it looks like Safari does something different from the other browsers.

    The solutions might be any of the following, as applicable:
    1. Use the Chrome browser.
    2. Make the xsMapping folder or the specific json map data file Public (Anyone can view).
    3. Follow the instructions suggested by Apple in this post. (It has worked for some users, including us.)
    4. Others have suggested to remove cross-site tracking block as explained in this post for a permanent fix.

  6. There might be other causes we are not fully aware of yet. Please submit a feedback ticket to our support team if this error keeps occurring.

How do I know if I am logged into the Chrome browser with multiple Google accounts?
Open a new tab in your Chrome browser and click on the round picture or initial in the top-right corner. You will be able to see all the accounts that you are logged in with. If you are not logged in with your default account, the text "(default)" will appear next to your default account.

Mapping Sheets add-on update: No more Public folder is required

posted Apr 25, 2016, 5:54 AM by Faustino Rodriguez   [ updated May 17, 2016, 9:35 AM ]

In summary, starting from version 1.301sv32 (published on May.03, 2016) the add-on folder (xsMapping) within your Google Drive account, no longer requires to be publicfor hosting the mapping webpage and your data files.

The common mapping.html webpage is now in a public hosting, while your data files (those *.json files) remain within the xsMapping folder in your own Google Drive account, but that doesn't require to be public anymore.

That's it.

Now the details, if you want to read further (no need for most of the users though)

First, the potential issues
  1. After updating to this new version, you have to Build your map again, because the previous json data files won't work on the new mapping web page.

  2. If you are logged in your browser using multiple Google accounts, you might not be able to see your data in the map. Please, be sure you are logged in using only one account, if that happens. Or alternative, you can share the xsMapping folder (or the specific json data file there) with all those accounts you are using on the same browser session, so any of those accounts has access.

  3. If you want to share your map with others, you have to share the xsMapping folder (or the specific json data file there) with those other users, or make it Public if you want to be accessible by anyone.

  4. The mapping page in current update is not working in some instances of Safari browser (we have so far about 5 reported cases). We still don't know the cause, but looks like Safari does something different to the other browsers.
    These are the solutions that have worked so far for some users:
     a) Follow the instructions suggested by Apple in this post
     b) Share xsMapping folder (or the specific json data file there) as Public

  5. Any custom icon images per user (those you might have defined in Icons sheet), without explicit full URL path, will not longer show up. This is because the actual mapping html page is no longer in your Google Drive, so there is no relative URL path going there.
    If you are among the few using this advanced feature, you need to provide the full URL path to your custom icon images (see below some hints on how to do that)

  6. Any previously bookmarked map webpage link will stop working after you build a new map .json file, because the data file format has changed a bit. This will include the cases, when you have embedded the mapping page in another website.
    You need to modify / update the mapping webpage link to the new URL you would see when viewing a new built map in your browser.

  7. Even though it's not an actual issue, we want to mention that in the first loading of this new version, we are updating the sharing settings on xsMapping folder from Public, back to the default Private. This however, won't change any specific users sharing you have created for that folder.

  8. We are not aware of any other issues so far, however we might have overlooked some specific scenarios in the way you are using this add-on. We are updating this post as we learn from your feedback. Thanks for your valuable support.

    open a support ticket if you have any other problem.

The background story
  1. When this add-on was first published in 2014, among the few secure and free of maintenance options, to host the add-on mapping page, we chose using each user's Google Drive as the web host, just to keep everything within each user Google account.

  2. Starting on Aug.31-2016, hosting and serving web pages from a public Google Drive folder or file will be discontinued and will stop working, as explained in this Google announcement from last year.

Hints on working out the potential issues
  1. Custom icon images require full URL path to a qualified web host, preferable with https, as explained above.

    If you have something like this in your Icons sheet, within any spreadsheet
    AccessoriesBlue{ "url":"icons/my-blue-icon.png"}

    You need to use a full URL path. See some options / hints below:

    a) Hosting your custom icon images in a website you own (recommended)
    AccessoriesBlue{ "url":""}

    b) Keeping your custom icon images hanging from xsMapping folder (valid until Aug.31, 2016). You'd need to set the xsMapping folder sharing back to public in the web, for this to work.
    AccessoriesBlue{ "url":""}

    c) Keeping your custom icon images hanging from xsMapping folder and using an export option. This might not cache the images, slowing down the map loading (avoid if possible). You'd need to set the xsMapping folder sharing back to public or at least by link, for this to work.
    AccessoriesBlue{ "url":""}

  2. Bookmarked (favorites or embedded) mapping page links need a URL update, to the new path and parameter.
    Just build a new map (Build button), then click on View button and get the URL of the mapping webpage.

Every OS sucks, almost?

posted Jan 18, 2016, 7:09 AM by Faustino Rodriguez   [ updated Jan 18, 2016, 7:12 AM ]

I have been enjoying this song for more than 10 years now, and I couldn't agree more every time I watch the video.

Last month I got stuck for 2 hours on a client site, just following a regular Windows 10 update.
And the latest, three (yes, 3) days from a factory reset on a Windows 7 laptop to upgrading to Windows 10.
Not that painful, but noticeable bothersome it's an update in my Ubuntu Linux box, and kind of the same in a Mac notebook (Linux-based, BTW).

However, there is still some hope when upgrading my Chromebook laptop, that is my main computer since last April
The Chrome OS update just take a normal restart (about 10 seconds) to complete, that's it, just a normal restart.

I guess this is possible because the Chrome OS is a minimal hardware-optimized Linux version, running a single though powerful application: the Chrome browser, with everything else within.
So, while Google keeps the OS that way, there is hope that almost every OS sucks, but the Chrome OS.

1-10 of 54