Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Brian_Munz
Employee
Employee

New Geospatial Mapping Extensions using Google Maps

I've attached below some mapping extensions that I've been working on and 2 example QVWs for them.  I've gotten a lot of feedback lately that there is a great need for QlikView to keep up as far as mapping goes, especially in terms of regions and countries.  Strangely enough the data for different geographical regions is difficult to find (and the boundary lines are often suspect) and mapping  services like google maps, bing, etc. aren't yet smart enough to select regions based on name.  Instead, polygons need to be drawn overtop of the maps based on a series of longitude, latitude coordinates or polylines.  These shapes will then render overtop of the given regions and represent them allowing us to shade and color them to represent data in different ways.

So, based on the data I was able to find for free out there and the specific needs requested by some people in the field, I created world map and US map extensions.  The US map extension was essentially an attempt to render the SVG Heat Map I built for the v11 Extension Examples document (http://demo.qlik.com/detail.aspx?appName=Extension%20Examples.qvw)within google maps:

US MAP.png

The data for the state regions is contained within the extension itself, but of course an internet connection is needed to use google maps. 

The world map extension was built for a specific request I had gotten to modify the SVG map example to allow for more than 2 colors and make a version of that extension that works for the world map:

world map.png

As you can see, this uses the map as a sort of traffic light gauge which colors the countries based on a range of data.

The properties panel for both of these extensions is pretty straightforward and should be a lot more flexible than the SVG map extension:

properties.png

Here is a quick guide to the properties:

Country/State: Obviously this should be set to the dimension holding the country or state names.  If the name doesn't match up to the name within the extension data, the connection will not be made, so if a given country isn't rendering on the map, that's probably why. 

Percentage: This expression controls the opacity (or alpha) of the different regions.  So, for example, a value of 70 on a given country will cause it to show at 70% opacity.  So this can either be set to something static (like above) where all countries will render with a certain opacity, or it can be set to an expression where regions are made to be lighter and darker opacity based on a data value (similar to the US map shown above).

Color Expression: This expression will provide the color(s) to use in rendering the regions.  Again, if only one color is desired, you could simply set this to a Hex or RGB value and all regions would show up the same color.  If you wanted to create a gauge type visualization like shown on the world map above, you could set that up in the expression as well.  For example, for the world map shown above where the traffic light colors are displayed based on population, the expression is:

=If(population > 100000000,'#439400', If(population > 30000000, '#F2EF1B', If(population <= 30000000,'#EB1A1A')))

This allows a lot of flexibility as far as which colors to display, how many, and when.

Hot Color: This is simply a color picker to use if a color expression is more than you need.  If the color expression field is left blank, the Hot Color choice will be used.

Map Start Point: This is the latitude and longitude value that the map should default to.  Currently the default is to show the United states, but if you wanted to change this, simply point it to somewhere else as the default, listing latitude first, then longitude.

Map Zoom Value: This value changes how zoomed in or out you want the map to display by default.  As you resize the extension you may find you need to zoom in or out, so this is where you would make that change.

Lastly, there are a few other quick things to mention about these extensions:

  • I tested having multiple instances of the extension on one sheet and it works fine, so that should be good to go
  • There is a button in the upper right that I added which allows the user to turn region labels on or off on the map.
  • Currently, clicking on a region will select that region in the QVW, but as I was building it I tested out creating some popup boxes on click, so that's fairly easy to do with a little javascript.
  • I haven't tested these in QV10, but I have no reason to think they wouldn't work.

I tried to comment the code as best as I could and if it seems as if these extensions are useful, I was thinking I might provide some in depth documentation on how to implement something similar for other regions.

That's about it.  It should hopefully be fairly easy to implement.  Let me know if you have any questions, and I hope this is useful to someone!

UPDATE:   I noticed that the extensions weren't working in IE7, so I made changes to them so they should now work.  The latest versions are now attached to this message so please download again for the latest.

41 Replies
Not applicable

In worldmap.qvw in the google map with countries.  I can select individual countries but is it possible to select multiple countries by selecting a reigon?  Just like if I were to drag and select an area of a scatter plot to filter for that data.

Brian_Munz
Employee
Employee
Author

Try holding down shift and dragging.

Not applicable

Hmmm I've definitely been trying that and I can't seem to get it to work.

Anonymous
Not applicable

Hello Brian, there is integration with waze maps?

Not applicable

Hi Brian,

This is great

I am just wondering whether it is possible to have a Pop-up /hover when you point on a specific state and want to display the information say Sales with in that state as a Pop-up.

Do you have any idea, is this some thing already avaiable or do we need to bild one?

Please Advise,

~Sri

Not applicable

Never mind, I got one --Thanks

Not applicable

Hi bmz,

             I want to get an idea about Google map.I have to highlight the particular regions in  UK which consumes electricity as 3 differenet category :High,Medium,Low with three different colors red,amber,green, im using qlik view 11 -personal edition.I need the step by step procedures for doing this task.Do you help me to provide some solutions?

               

                                   thanks in advance.

Not applicable

Hi bmz,

             I want to get an idea about Google map.I have to highlight the particular regions in  UK which consumes electricity as 3 differenet category :High,Medium,Low with three different colors red,amber,green, im using qlik view 11 -personal edition.I need the step by step procedures for doing this task.I have downloaded ukpostcode.kml file from the internet.I dont have any idea to proceed.Do you help me in giving some ideas?

              

                                   thanks in advance.

Not applicable

Hi Brian,

I also have same requirement of drill down in the map.

Can I drill down from country-> state->city in this map by some changes in script or something?

Brian_Munz
Employee
Employee
Author

To do a drill down, you could use calculated dimensions.  So basically if you had two levels, state and city, and you wanted the city points to be displayed when a state is selected, you could set the region dimension to this expression:

=if(GetSelectedCount(StateName)=1, city_name, StateName)