GMapPlot and sensitive data

Hi, I’m considering using bokeh for a project where I’m going to plot geo-points (coordinates) on an interactive map. I’ve seen some amazing examples using GMapPlot but before I use it I would like to know the following:

  1. Will the geodata be visible to Google or bokeh when using it? I looked at the documentation and it seems like you only get an underlay from google. This is very important since the geodata is sensitive. What exactly happens (in a broad sense) when I add the data to the plot? I didn’t find any information about this in the documentation so I thought that I would ask here. If there are any resources for reading about this, let me know!

  2. Is there any other underlay that can be used with high detail on a city level?

All the best

I am afraid I don’t at all know what is possible on the GMap plot API side of things i.e. what could someone do with a reference to a Maps object. I think for these specialized requirements you will ultimately need to evaluate the code yourself to see if it meets your needs. Here is how Bokeh creates (and stores a reference to) the Google Maps object:

Thanks for answering!

Alright, my Javascript is very rusty but I might have to check it for myself if I decide to use GMAP. However I found that you can use other tile providers such as “OSM” or “CARTODBPOSITRON_RETINA” which does seem to work in an offline setting.

Just so I understand you clearly: what do you mean when you say “what could someone do with a reference to a Maps object”? Maybe you misunderstood what I meant? The users of the dashboard I’m building will have legal clearence to view the sensitive data, but Google and Bokeh does not (obviously). To plot on a google maps however you need to have an internet connection and to specify your plotted geopoints (which are sensitive) before being able to show the result. My question is if these geopoints are visible to either Google (or Bokeh in some weird way).

Just thought I would write that so you don’t misunderstand me.

All the best

It’s unclear what exactly you are referring to when you say things like “visible to Google” or “visible to Bokeh”. Do you mean the Bokeh Javascript library code in the browser? Or the “Bokeh organization” in some sense? Obviously any library or tool that is plotting your data must have access to it at some instance, to be able to draw it on the screen. Nothing in Bokeh ever “phones home” in any way, if that is what you are asking. I cannot speak at all as to what the Google maps service does or does not do in this regard, if you use their APIs to plot points. Bokeh only uses the API to extent shown in the linked code, i.e. to fetch a plain map for a specified region (which is used to underlay a transparent canvas that Bokeh draws on independently).

BTW I would not expect any of the built in tile renderers, e.g. the CARTO ones, or google maps, to function in an airgapped or offline environment. All the built in tile renderers load tiles over the internet from public tile servers, and google maps access Google’s public maps API. If it is “working” then perhaps your browser has previously cached tiles for the areas you are looking at sometime when it was connected. You could certainly run your own tile servers internally, and configure new custom tile sources load from those, but that’d be up to you.