Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Database

Includes configuration for entity, data, search and index. Data definitions for lookup lists for countries, codes and index is included. 

The configuration is using two ACL : acl.entity.globalmap.gadm to allow index search and acl.data.globalmap.gadm to search and list data.

Two user attributes is used to filter data: 

  1. user.customers.globalmap.gadm.name_0 is used to filter countries.
  2. user.customers.globalmap.gadm.name_1 is used to filter first order administrative areas.
Info
titleExamples

The whole world:

  • user.customers.globalmap.gadm.name_0 = %
  • user.customers.globalmap.gadm.name_1 = %

Australia:

  • user.customers.globalmap.gadm.name_0 = Australia
  • user.customers.globalmap.gadm.name_1 = %

Stockholm and Helsinki

  • user.customers.globalmap.gadm.name_0 = Sweden
  • user.customers.globalmap.gadm.name_0 = Finland
  • user.customers.globalmap.gadm.name_1 = Stockholm
  • user.customers.globalmap.gadm.name_1 = Helsinki
Code Block
languagexml
themeDJango
titleglobalmap_gadm.xml
collapsetrue
<?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>