Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Brian_Munz
Employee
Employee

Open Source Geospatial Mapping Extension using KML files

A little while back, I posted a few mapping extensions that read in various kinds of data to allow mapping of regions and data on Google Maps.  One major problem with those is that Google is now charging money for useof their mapping product, so in order to use this extension on any grand scale,they'd need to purchase licensing.

So, in response to this, I've built an extension which uses all open source (free) products to provide some similar mapping capabilities(and then some).  The tool which provides the scrolling and "slippy" map features is called OpenLayers which reads in map imagery from OpenStreetMap. What I've done this time, however, is built the extension to read in KML files for the regions.  KML is a format that is very common in the industry (Google Earth uses and creates the files) ,and there are many tools out there to convert other formats (like shape files) into the KML format.

So, for example, I went and found a KML file for the US 50 states and put it into this new extension, and was able to create a map similar to my other US Map extension:

map_shot.png

New Features


Above and beyond the normal features of the extensions I created for Google, this extension provides a few new features:

  • No more setting the zoom and center point - In the other extensions, you had to set the default center point of the map as well as how far in it should be zoomed when it loads.  In order to make the map more user friendly and intuitive, this extension automatically determines the center point of all of the regions and sets the window to show the whole map.  This way, also, if you click on a region, the map window will only show the selected region:
    one_state.png
  • Select Box -With this extension, if you hold down the shift key and drag an area with your mouse, a select box will appear, allowing you to select many regions at once:
    select_box.png
    Once the selection is made, the window will adjust itself to only show that region:chosen.png
  • Loading KML files - Loading KML files into the extension eliminates a lot of the manual work that was need for the other extensions.  This way, as long as the KML names and QlikView dimension match up, KML files containing any kinds of regions can be used.  So, for example, if a company has custom regions representing different sales regions, etc. in a KML file, it would be very easy to plug it into this extension.

  • It's free- It uses open source technology so nobody will have to worry about licensing or being chased down by Google.

I've attached the extension as well as a QVW and quick guide.  In the extension is a sample KML file called us_states.kml that can be used with the example QVW.

Please let me know if you have any questions.  Hopefully this is useful to people.

UPDATE

Due to some issues with versions of Internet Explorer prior to 9 and how it handles different data formats, it is now necessary to change the KML file into an XML file prior to loading it into the extension.  So, for example, if you have a KML named "counties.kml" you need to change the file extension so it becomes "counties.xml".  Hopefully I'll eventually get time so this last step can be avoided, but for now it's necessary in order for the extension to work in IE8.

I've updated the attatchments on this post to use an XML file, so the examples should now work.

176 Replies
Not applicable

Hi,

I was trying to add another measere in defination.xml  file in this extension.

But After adding in defination.xml

<Measurement Label="Pop Up" Initial="Pop Up Value " />

DynProperties changes automatically.

Now after doing this, the map stopped working....

Is it required to edit some other setting to add another field.

I was using this code to fetch this new measurement..


                    for (var rowIx = 0; rowIx < _this.Data.Rows.length; rowIx++) {
                       

var row = _this.Data.Rows[rowIx];

var thisPop=row[3].text;

am i doing somthing wrong,,...just by changing Defination.xml, or QVPP file, the map stopped working..

Please suggest.

Thanks and Regards

Arun Goel

Not applicable

Unfortunately it is a problem in the qlikview extensions: once you change the structure of the data your extension is receiving (like adding Text values, dimensions or expressions) the object that were created with an older structure won't work anymore.

I never found a workaround for this, so my rule of thumb is to always create more expressions and texts than I need when starting development to be able to use them without breaking older objects.

Not applicable

Hi,

Same is happened with me.

I convert this for  india, and its working fine in desktop web view but not in ajax

Have you found any solution for this.

Not applicable

HI,

I have done same for india....

Its working fine with desktop view....

But when i deployed it on server, it stopped working....

Any suggestion...??

Thanks and Regards:

Arun Goel

Not applicable

Hi Arun,

It seems like the XML name tags cant relate with the names in the QV project.

But if it is working fine in the desktop... can it be an encoding problem?


Does it happen for any selection you do? 



Not applicable

Hi,

The map just does't show on ajax, anything is selected on not.

Same application with same extension works fine on same server's desktop view.

I did,n get what is encoding problem.....state names in QV and xml are matching perfectly.

Thanks and Regards

Arunh Goel

Not applicable

By encoding i mean character encoding, but now we know thats not the problem as your desktop view is in the same server.

I dont know if this helps but, In the server i did installed the extension in two different folders:

  • Local folder = C:\Users\myuseraccount\AppData\Local\QlikTech\QlikView\Extensions\Objects
  • Server folder = C:\ProgramData\QlikTech\QlikViewServer\Extensions\Objects

Including the XML file, in both folders (so to run in the desktop and in the web client).

Other than that...

If you want, send me your XML and a test qvw to try in my server.

Regards,

Joao

Not applicable

HI,

Thanks for your comments.

I have also placed extension folder in both palace.

I will soon share the sample application with you. Thanks for your efforts.

Arun Goel

Not applicable

Hi Brian,

it seems you're the one to contact about maps extension.

I'd like to build my own .qar file. Can you explain me how to do that?

What kind of file do I need (xml, kml, others...)

I tried to reach a site with codec which is given in this post but Mc Afee pointed it as no secure.

So if you can just tell me how to get (or build) coordinates and how to build a .qar file i would be pleased.

Thank you

Chris

Not applicable

Hi,

QAR files are just like normar archive file with .qar extension (Qlikview Archive).

Just Archive your extension folder, change the extension from .zip to .qar and qar file is ready.

Thanks and Regards

Arun Goel