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

To see the data on the sheet change to reflect the click. For example if someone clicks Minnesota they see the Minnesota races and the results.

Brian_Munz
Employee
Employee
Author

That should work currently in that extension. Are the clicks not working?

Not applicable

Maybe I'm not clear. I have a completely separate data set from what you have. I want the data pulled from my data set, not yours, but with the click option. Maybe I'm just too much a novice that I can't figure it...

Brian_Munz
Employee
Employee
Author

All you have to do is set the properties of the extension correctly.  So, with your data, you'd set the "State" dimension to your state values (assuming it's the two character names).

Then you'd set the percentage expression to whatever you're looking to measure for the states.  So in the example photo above you can see that I'm setting this to return a percentage that shades the states different shades of green.  If you don't care about shading, just set this to a number between 1 and 100.

The color expression can be either hardcoded to a color or be used as a gauge for a range similar to what I mention above.

Then you should be all set.  If the person clicks on a state, it would be the same as the person clicking the state name in a listbox.  The sheet should update based on that click.    

Not applicable

Ok, that makes sense. Thanks!

Not applicable

Hello Brian,

I am on V. 11.00.11414.0 SR2 64-bit running on Win 7 Enterprise

When I load the qvw I get a message stating Navigation has been cancelled. To circumvent this I turn off the web view. Then I get a blank US Map with a message stating Unknown Chart Type.

What am I missing.

selcukcadir
Creator II
Creator II

Hello Brian,

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

How do I change it?

is initial

selcukcadir
Creator II
Creator II

hi,

QV acces point unknown chart error is ?

QV 10 SR2

IE9

Not applicable

Is it possible  to 'drag and select' multiple countries at a time?  I can't seem to do it in your attached demo files.

Brian_Munz
Employee
Employee
Author

In which extension?