------------------------------------------------------------ revno: 677 committer: Jan Henrik Overland janhenrik.overl...@gmail.com branch nick: trunk timestamp: Fri 2009-09-11 20:36:26 +0700 message: (GIS) Thematic map value algorithm rewritten, leading to a considerable performance improvement when drawing maps. modified: dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMap.vm dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js
-- lp:dhis2 https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk Your team DHIS 2 developers is subscribed to branch lp:dhis2. To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription.
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm 2009-09-11 11:04:21 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonAggregatedMapValues.vm 2009-09-11 13:36:26 +0000 @@ -1,10 +1,11 @@ +#set( $size = $object.size() ) { "mapvalues": [ #foreach( $value in $object ) { - "organisationUnitId": "$!{value.organisationUnitId}", - "orgUnit": "$!{value.organisationUnitName}", + "orgUnitId": "$!{value.organisationUnitId}", + "orgUnitName": "$!{value.organisationUnitName}", "featureId": "$!{value.featureId}", "value": "$!{value.value}" - }, + }#if( $velocityCount < $size ),#end #end ] } \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMap.vm' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMap.vm 2009-07-06 01:22:57 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMap.vm 2009-09-11 13:36:26 +0000 @@ -5,7 +5,6 @@ "mapLayerPath": "$!encoder.jsEncode( ${object.mapLayerPath} )", "organisationUnit": "$!encoder.jsEncode( ${object.organisationUnit.name} )", "organisationUnitLevel": "$!{object.organisationUnitLevel.level}", - "uniqueColumn": "$!encoder.jsEncode( ${object.uniqueColumn} )", "nameColumn": "$!encoder.jsEncode( ${object.nameColumn} )", "longitude": "$!encoder.jsEncode( ${object.longitude} )", "latitude": "$!encoder.jsEncode( ${object.latitude} )", === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2009-09-11 07:09:25 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2009-09-11 13:36:26 +0000 @@ -2357,12 +2357,12 @@ var indicatorId = Ext.getCmp('indicator_cb').getValue(); var periodId = Ext.getCmp('period_cb').getValue(); - var level = MAPDATA.organisationUnitLevel; + var mapLayerPath = MAPDATA.mapLayerPath; Ext.Ajax.request({ url: path + 'getMapValues' + type, method: 'POST', - params: { indicatorId: indicatorId, periodId: periodId, level: level, format: 'json' }, + params: { indicatorId: indicatorId, periodId: periodId, mapLayerPath: mapLayerPath, format: 'json' }, success: function( responseObject ) { dataReceivedChoropleth( responseObject.responseText ); @@ -2376,98 +2376,109 @@ function dataReceivedChoropleth( responseText ) { var layers = this.myMap.getLayersByName(CHOROPLETH_LAYERNAME); var features = layers[0].features; - var mapvalues = Ext.util.JSON.decode(responseText).mapvalues; - + if (mapvalues.length == 0) { Ext.messageRed.msg('Thematic map', 'The selected indicator, period and level returned no data.'); MASK.hide(); return; } - + + for (var i = 0; i < features.length; i++) { + features[i].attributes.value = 0; + } + if (MAPSOURCE == 'database') { - for (var i=0; i < features.length; i++) { - for (var j=0; j < mapvalues.length; j++) { - if (features[i].attributes.value == null) { - features[i].attributes.value = 0; - } - - if (features[i].attributes.name == mapvalues[j].orgUnit) { - features[i].attributes.value = parseFloat(mapvalues[j].value); - } - } - } + for (var i = 0; i < mapvalues.length; i++) { + for (var j = 0; j < features.length; j++) { + if (mapvalues[i].orgUnitName == features[j].attributes.name) { + features[j].attributes.value = parseFloat(mapvalues[i].value); + } + } + } var options = {}; - /*hidden*/ - choropleth.indicator = 'value'; - choropleth.indicatorText = 'Indicator'; - options.indicator = choropleth.indicator; + // /*hidden*/ + // choropleth.indicator = 'value'; + // choropleth.indicatorText = 'Indicator'; + // options.indicator = choropleth.indicator; - options.method = Ext.getCmp('method').getValue(); - options.numClasses = Ext.getCmp('numClasses').getValue(); - options.colors = choropleth.getColors(); + // options.method = Ext.getCmp('method').getValue(); + // options.numClasses = Ext.getCmp('numClasses').getValue(); + // options.colors = choropleth.getColors(); - choropleth.coreComp.updateOptions(options); - choropleth.coreComp.applyClassification(); - choropleth.classificationApplied = true; + // choropleth.coreComp.updateOptions(options); + // choropleth.coreComp.applyClassification(); + // choropleth.classificationApplied = true; - MASK.hide(); + // MASK.hide(); } else { - var mlp = MAPDATA.mapLayerPath; var nameColumn = MAPDATA.nameColumn; - Ext.Ajax.request({ - url: path + 'getAvailableMapOrganisationUnitRelations' + type, - method: 'POST', - params: { mapLayerPath: mlp, format: 'json' }, - - success: function( responseObject ) { - var relations = Ext.util.JSON.decode(responseObject.responseText).mapOrganisationUnitRelations; - - for (var i=0; i < relations.length; i++) { - var orgunitid = relations[i].organisationUnitId; - var featureid = relations[i].featureId; + // var relations = Ext.util.JSON.decode(responseObject.responseText).mapOrganisationUnitRelations; + + for (var i = 0; i < mapvalues.length; i++) { + for (var j = 0; j < features.length; j++) { + if (mapvalues[i].featureId == features[j].attributes[nameColumn]) { + features[j].attributes.value = mapvalues[i].value; + } + } + } + // for (var i=0; i < relations.length; i++) { + // var orgunitid = relations[i].organisationUnitId; + // var featureid = relations[i].featureId; - for (var j=0; j < mapvalues.length; j++) { - if (orgunitid == mapvalues[j].organisationUnitId) { - for (var k=0; k < features.length; k++) { - if (features[k].attributes['value'] == null) { - features[k].attributes['value'] = 0; - } + // for (var j=0; j < mapvalues.length; j++) { + // if (orgunitid == mapvalues[j].organisationUnitId) { + // for (var k=0; k < features.length; k++) { + // if (features[k].attributes['value'] == null) { + // features[k].attributes['value'] = 0; + // } - if (featureid == features[k].attributes[nameColumn]) { - features[k].attributes['value'] = mapvalues[j].value; - } - } - } - } - } - - var options = {}; - - /*hidden*/ - choropleth.indicator = 'value'; - choropleth.indicatorText = 'Indicator'; - options.indicator = choropleth.indicator; - - options.method = Ext.getCmp('method').getValue(); - options.numClasses = Ext.getCmp('numClasses').getValue(); - options.colors = choropleth.getColors(); - - choropleth.coreComp.updateOptions(options); - choropleth.coreComp.applyClassification(); - choropleth.classificationApplied = true; - - MASK.hide(); - }, - failure: function() { - alert( 'Error while retrieving data: dataReceivedChoropleth' ); - } - }); + // if (featureid == features[k].attributes[nameColumn]) { + // features[k].attributes['value'] = mapvalues[j].value; + // } + // } + // } + // } + // } + + var options = {}; + + // /*hidden*/ + // choropleth.indicator = 'value'; + // choropleth.indicatorText = 'Indicator'; + // options.indicator = choropleth.indicator; + + // options.method = Ext.getCmp('method').getValue(); + // options.numClasses = Ext.getCmp('numClasses').getValue(); + // options.colors = choropleth.getColors(); + + // choropleth.coreComp.updateOptions(options); + // choropleth.coreComp.applyClassification(); + // choropleth.classificationApplied = true; + + // MASK.hide(); } + + var options = {}; + + /*hidden*/ + choropleth.indicator = 'value'; + choropleth.indicatorText = 'Indicator'; + options.indicator = choropleth.indicator; + + options.method = Ext.getCmp('method').getValue(); + options.numClasses = Ext.getCmp('numClasses').getValue(); + options.colors = choropleth.getColors(); + + choropleth.coreComp.updateOptions(options); + choropleth.coreComp.applyClassification(); + choropleth.classificationApplied = true; + + MASK.hide(); } /*PROPORTIONAL SYMBOL*/
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp