← Back to team overview

dhis2-users team mailing list archive

Re: [Dhis2-devs] Info on GIS development

 

2010/7/23 Knut Staring <knutst@xxxxxxxxx>:
> 2010/7/14 Lars Helge Øverland <larshelge@xxxxxxxxx>:
>>
>> We are in the process of changing the GIS module in terms of how the
>> geographical information is persisted and presented.
>> In the snapshot version we now store the coordinates in JSON format directly
>> in the database on the OrganisationUnit.coordinates property. This gives us
>> a lot more flexibility in the way maps are presented.
>> Previously maps had to be registered explicitly either in the form of
>> GeoJson files or Shapefiles. Then the user had to select a map together with
>> indicator and period. Now the user can select an orgunit from a tree and the
>> children of that orgunit at the level below will be displayed in the map.
>> In large countries in India it is impossible to display a single map at the
>> lower levels (eg. for thousands of districts) as the map will be too heavy
>> and slow to load. Registering and managing maps for every e.g. provinces
>> will also be too cumbersome. With the current solution there is no more work
>> of registering and selecting maps - only the one time job of importing
>> geographical data/coordinates into the database.
>> Importing is a 4 step process:
>>
>> 1. Convert your shapefiles (or whatever format you have) into GML.
>> The recommended tool is FWTools, http://fwtools.maptools.org/ ;. The command
>> for converting shapefiles into GML is
>> ogr2ogr -F GML output.gml input.shp
>
> One problem is that the conversion to GML seems to generate very large
> representations, because the GML coordinates are output with 15
> decimals, whereas you would normally be happy with 5-6. Here is a
> comparison of what I get in GeoJSON vs GML (converting from the same
> shapefile):
> GeoJSON: 38.415412, 1.750212
> GML:        38.415411724082148,1.750212388592194

I think this is just a question of understanding how many decimal
points are required/optimal/acceptable or what have you.  If you think
4 or 5 or 6 is enough then I guess this can be reduced in the xslt
transform.

Just saw Jan's mail.  3 is fine as well.  It could be done at gml2dxf
stage or at db insertion.  Swings 'n roundabouts.  The earlier in the
process the better from an efficiency perspective.  But java rounding
is maybe more efficient than xpath function.  Perhaps the best of both
worlds might be a simple java rounder function available to the xslt.
Ideally would be a parameter to ogr2ogr but we probably don't want our
own custom binary.

Bob

>
> It also seems that there the import process puts a bit too many
> brackets on points:
> Example point representation (which also has a ridiculous tail of decimals):
> [[[[37.270000000000003,-0.69]]]]
>
> Example full polygon representation (gets very big when adding
> hundreds of polygons into a layer):
> [[[[35.241617396557501,-1.042755167363498],[35.082178302163747,-0.910721897610392],[35.016946729972211,-0.895020643910023],[35.011665399182093,-0.885742630359804],[35.024369140812389,-0.87746378749961],[35.019944242042286,-0.853483690939046],[35.045208986632879,-0.856766680349123],[35.060339285653235,-0.839352562608713],[35.077610664723643,-0.860192408429204],[35.085033075563814,-0.846061280098871],[35.139987463515105,-0.881032254249694],[35.136418996765023,-0.843206506698804],[35.168249720175773,-0.842064597338777],[35.172674618945877,-0.792391540177609],[35.202078784966567,-0.793390710867632],[35.231625689657264,-0.819083671468237],[35.262599981047991,-0.804667065797898],[35.297285477858807,-0.830645503738509],[35.334540270729683,-0.814087818018119],[35.343961022949905,-0.790393198797562],[35.27601741602831,-0.724162455916004],[35.242759305917524,-0.747857075136561],[35.241331919217494,-0.694758289895313],[35.262029026367976,-0.680056206884967],[35.291861408398681,-0.655076939634379],[35.387496317300929,-0.65935909973448],[35.397773501541174,-0.647940006134211],[35.420611688741708,-0.729301048036125],[35.481989316843155,-0.77797493450727],[35.539513000854505,-0.798101086977743],[35.434029123722027,-0.895020643910023],[35.408478901791426,-0.957111965361483],[35.360233231330291,-0.98123480059205],[35.346673057679972,-0.973812389751876],[35.241617396557501,-1.042755167363498]]]]
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>



Follow ups

References