http://gadm.org/ (Gadm) contains world wide administrative areas down to 2 or 3 levels under countries. For iKartan, municipalities for the whole world is downloaded.
Gadm database
The gadm database is created by the Geokettle script CreateGadmDB.kjb, basically just a SQL script
Name_0 is the country, Name_1 is the first order administrative areas etc.
ISO is a three letter country code
Getting the data
The Geokettle job GetGadmFromTheWeb.kjb is used to get the data from the web, unpack and store it to the database. The data is replaced
Weave configuration
Gadm
<?xml version="1.0" encoding="UTF-8"?> <config xmlns= "urn:com.cohga.server.config#1.0" xmlns:dmsstorage="urn:com.cohga.dms.storage.document.db#1.0" xmlns:cache= "urn:com.cohga.server.cache#1.0" xmlns:acl= "urn:com.cohga.server.acl#1.0" xmlns:pool= "urn:com.cohga.server.pool#1.0" xmlns:options= "urn:com.cohga.server.options#1.0" xmlns:parameter="urn:com.cohga.server.parameter#1.0" xmlns:search= "urn:com.cohga.server.search.database#1.0" xmlns:birt= "urn:com.cohga.server.report.birt#1.0" xmlns:data= "urn:com.cohga.server.data.database#1.0" xmlns:entity= "urn:com.cohga.server.entity#1.0" xmlns:jdbc= "urn:com.cohga.server.datasource.jdbc#1.0" xmlns:arcgisws= "urn:com.cohga.server.map.arcgis.ws#1.0" xmlns:arcims= "urn:com.cohga.server.map.arcims#1.0" xmlns:mapper= "urn:com.cohga.server.spatial.mapper#1.0" xmlns:spatial= "urn:com.cohga.server.spatial.geotools#1.0" xmlns:index= "urn:com.cohga.server.index#1.0" xmlns:toc= "urn:com.cohga.server.map.toc#1.0" xmlns:client= "urn:com.cohga.html.client#1.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wms = "urn:com.cohga.server.map.wms#1.0" xmlns:edit= "urn:com.cohga.spatial.edit#1.0" xmlns:editor="urn:com.cohga.server.editor#1.0"> <!-- Global map --> <entity:entity id="entity.globalmap.gadm" label = "%globalmap.gadm.entity" acl="acl.entity.globalmap.gadm" /> <mapper:mapper id="mapper.globalmap.gadm"> <spatialEngine>spatialengine.globalmap_gadm</spatialEngine> <acl>acl.data.globalmap.gadm</acl> <mapping> <entity>entity.globalmap.gadm</entity> <table>gadm</table> <key>objectid</key> <filter>name_0 like'${user.customers.globalmap.gadm.name_0}'</filter> <filter>name_1 like'${user.customers.globalmap.gadm.name_1}'</filter> <dynamic/> <cache disable="true" /> </mapping> </mapper:mapper> <data:data id="d.globalmap.gadm" label="%globalmap.gadm.entity" entity="entity.globalmap.gadm" datadefinition="dd.globalmap.gadm" acl="acl.data.globalmap.gadm" /> <data:datadefinition id='dd.globalmap.gadm'> <datasourcedataconnection key='objectid' table='gadm.gadm' datasource='ds.globalmap'> <!-- <parameter name='objectid' label='Objectid' column='objectid' type='int'/> <parameter name='id_0' label='Id 0' column='id_0' type='int'/> <parameter name='iso' label='Iso' column='iso'/> <parameter name='id_1' label='Id 1' column='id_1' type='int'/> <parameter name='type_1' label='Type 1' column='type_1'/> <parameter name='id_2' label='Id 2' column='id_2' type='int'/> <parameter name='type_2' label='Type 2' column='type_2'/> <parameter name='id_3' label='Id 3' column='id_3' type='int'/> --> <parameter name='name_0' label='%globalmap.gadm.name_0' column='name_0'/> <parameter name='name_1' label='%globalmap.gadm.name_1' column='name_1'/> <parameter name='name_2' label='%globalmap.gadm.name_2' column='name_2'/> <parameter name='name_3' label='%globalmap.gadm.name_3' column='name_3'/> <parameter name='area_km2' label='%globalmap.gadm.area_km2' column="ST_Area(the_geom::geography)::bigint/1000000"/> </datasourcedataconnection> </data:datadefinition> <data:data id="d_gadm_group_total" label="%globalmap.gadm.total_area" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_total" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_total"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> </groupdataconnection> </data:datadefinition> <data:data id="d_gadm_group_country" label="%globalmap.gadm.area_per_country" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_country" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_country"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="name_0" label="%globalmap.gadm.name_0" column ="name_0" /> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> <group column="name_0"/> </groupdataconnection> </data:datadefinition> <data:data id="d_gadm_group_name_1" label="Area per name_1" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_name_1" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_name_1"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="name_0" label="%globalmap.gadm.name_0" column ="name_0" /> <parameter name="name_1" label="%globalmap.gadm.name_1" column ="name_1" /> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> <group column="name_1"/> </groupdataconnection> </data:datadefinition> <data:datadefinition id='dd_list.globalmap.gadm'> <datasourcedataconnection table='gadm.gadm' datasource='ds.globalmap' prefix="distinct"> <where clause="name_0 like'${user.customers.globalmap.gadm.name_0}'"/> <where clause="name_1 like'${user.customers.globalmap.gadm.name_1}'" /> <parameter name='name_0' column='name_0'/> <parameter name='name_1' column='name_1'/> <parameter name='name_2' column='name_2'/> <parameter name='name_3' column='name_3'/> </datasourcedataconnection> </data:datadefinition> <search:attribute id="sa.globalmap.gadm"> <acl>acl.data.globalmap.gadm</acl> <entity>entity.globalmap.gadm</entity> <description>%globalmap.gadm.search</description> <displayName>%globalmap.gadm.search</displayName> <dataSource>ds.globalmap</dataSource> <table>gadm.gadm</table> <key>objectid</key> <where clause="name_0 like'${user.customers.globalmap.gadm.name_0}'"/> <where clause="name_1 like'${user.customers.globalmap.gadm.name_1}'" /> <parameter id="Country_subnames" > <dataset>dd_list.globalmap.gadm</dataset> <parameter id ="name_0"> <promptText>%globalmap.gadm.name_0</promptText> <controltype>listbox</controltype> <column>name_0</column> <valuecolumn>name_0</valuecolumn> <labelcolumn>name_0</labelcolumn> <dataType>string</dataType> <allowblank>false</allowblank> </parameter> <parameter id ="name_1"> <promptText>%globalmap.gadm.name_1</promptText> <controltype>listbox</controltype> <column>name_1</column> <valuecolumn>name_1</valuecolumn> <labelcolumn>name_1</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> <parameter id ="name_2"> <promptText>%globalmap.gadm.name_2</promptText> <controltype>listbox</controltype> <column>name_2</column> <valuecolumn>name_2</valuecolumn> <labelcolumn>name_2</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> <parameter id ="name_3"> <promptText>%globalmap.gadm.name_3</promptText> <controltype>listbox</controltype> <column>name_3</column> <valuecolumn>name_3</valuecolumn> <labelcolumn>name_3</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> </parameter> <cache disable="true"/> </search:attribute> <data:datadefinition id='dd.index.globalmap.gadm'> <datasourcedataconnection key='objectid' table='gadm.gadm' datasource='ds.globalmap'> <parameter name='name_0_lower' column='lower(name_0)'/> <parameter name='name_1_lower' column='lower(name_1)'/> <parameter name='name_0' label='%globalmap.gadm.name_0' column='name_0'/> <parameter name='name_1' label='%globalmap.gadm.name_1' column='name_1'/> <parameter name='name_2' label='%globalmap.gadm.name_2' column='name_2'/> <parameter name='name_3' label='%globalmap.gadm.name_3' column='name_3'/> </datasourcedataconnection> </data:datadefinition> <index:entity id="index.globalmap.gadm"> <entity>entity.globalmap.gadm</entity> <fields> <datadefinition>dd.index.globalmap.gadm</datadefinition> <field name="customers.globalmap.gadm.name_0" value="name_0_lower"/> <field name="customers.globalmap.gadm.name_1" value="name_1_lower"/> </fields> <weight>2</weight> <display> <datadefinition>dd.index.globalmap.gadm</datadefinition> <level1><![CDATA[ <div> <img src="custom/resources/icons/world_tool.png" style=" float: left; padding-right:10px; height:16px; margin-left: -5px; padding-bottom: 1px;"></img> <div> <div style="display: inline-block; font-size:14px;font-weight: normal;">${name_3} ${name_2} </div> <div style="display: inline-block; font-size:12px;font-weight: normal;color:gray;"> ${name_1} ${name_0}</div> </div> </div> ]]></level1> </display> <keywords> <datadefinition>dd.index.globalmap.gadm</datadefinition> <level1>${name_2}</level1> <level2>${name_1}</level2> <level3>${name_0}</level3> <level4>${name_3}</level4> </keywords> <!-- <schedule>0 0 06 1</schedule> --> <schedule>0 0 26 3</schedule> </index:entity> </config>