From 804ac5a40b437ac48d22d2be735d7ea48207147b Mon Sep 17 00:00:00 2001 From: gerald2545 Date: Sat, 21 Sep 2019 00:37:31 +0200 Subject: [PATCH 1/7] #227 --- lib/js/public/map.js | 59 ++++++++++++++++++++++++++---------- lib/php/public/getMarker.php | 13 ++++++-- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/lib/js/public/map.js b/lib/js/public/map.js index 5b15371a..22a18c72 100644 --- a/lib/js/public/map.js +++ b/lib/js/public/map.js @@ -16,7 +16,10 @@ function osm_getTileURL(bounds) { var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h)); var z = this.map.getZoom(); var limit = Math.pow(2, z); - +console.log("x = " + x); +console.log("y = " + y); +console.log("z = " + z); +console.log("limit = " + limit); if (y < 0 || y >= limit) { return OpenLayers.Util.getImagesLocation() + "404.png"; } else { @@ -37,6 +40,8 @@ var navigation = new OpenLayers.Control.Navigation({ return; } }); +var projection1 = new OpenLayers.Projection("EPSG:900913"); +var projection2 = new OpenLayers.Projection("EPSG:4326"); var optionsMap = { controls: [ new OpenLayers.Control.PanZoom(), @@ -44,8 +49,8 @@ var optionsMap = { new OpenLayers.Control.ScaleLine({geodesic: true}), controlZoomBox ], - projection: new OpenLayers.Projection("EPSG:900913"), - displayProjection: new OpenLayers.Projection("EPSG:4326"), + projection: projection1, + displayProjection: projection2, units: "m", maxZoomLevel: 19, //maxResolution: 156543.0339, @@ -102,18 +107,7 @@ function clearMarker() { } -function getMarker() { - clearMarker(); - if (tabcheckchild != '') { - console.log("before display block"); - document.getElementById("loader").style.display = "block"; - - var uri = 'lib/php/public/getMarker.php?listType='+tabcheckchild+'&dateLastModif='+dateLastModif+'&status='+StatusPOIFieldMapItemMenu.getValue()+'&priorite='+comboPrioritePOIMapItemMenu.getValue()+'&nbSupportMinimum='+nbSupportMinimum; - OpenLayers.loadURL(uri, '', this, displayMarker); - - } -} var singleObservationIdToDisplay; function getMarkerByID(id) { clearMarker(); @@ -173,6 +167,7 @@ function displayMarkerAndCenterInPublicMap(response) { } var features = []; +var featuresId = []; function displayMarker(response) { document.getElementById("loader").style.display = "none"; console.log("after display none"); @@ -180,6 +175,13 @@ function displayMarker(response) { if (json.markers != null) { for (var i=0; i0) { @@ -216,7 +218,7 @@ function displayMarker(response) { } observationsVectorLayer.addFeatures(features); showTooltipNumberOfObservations(features.length); - features = []; + //features = []; }else{ showTooltipNumberOfObservations(0); } @@ -936,6 +938,9 @@ click.activate(); +publicMap.events.register("moveend", publicMap, function() { + getMarker(); +}); //publicMap.events.register('click',publicMap, function(e) { @@ -988,28 +993,33 @@ var mapPanel = new Ext.Panel({ if (afterLayoutVar == 0) { var uri = 'lib/php/public/getDefaultConfigMap.php'; OpenLayers.loadURL(uri,'',this,setDefaultCenterMap); + console.log("mapPanel.afterLayout"); + afterLayoutVar = 1; } } } }); - +var setDefaultCenterMapDone = 0; function setDefaultCenterMap(response) { var json = eval('('+response.responseText+')'); var long = getCookie("mapx"); var lat = getCookie("mapy"); var zoom = getCookie("mapz"); console.debug("Cookie "+document.cookie); + setDefaultCenterMapDone = 1; //si les infos de longitude, latitude et zoom sont dans les cookies, on les utilise, sinon on récupère les infos de la base de données if(long != null && long != 0){ console.debug("Configmap from cookies"); publicMap.setCenter(new OpenLayers.LonLat(long,lat), zoom); publicMap.setBaseLayer(publicMap.layers[0]); + getMarker(); }else if (json.configmap != null) { console.debug("Configmap from database"); publicMap.setCenter(new OpenLayers.LonLat(json.configmap[0].lon, json.configmap[0].lat).transform(new OpenLayers.Projection("EPSG:4326"), publicMap.getProjectionObject()), json.configmap[0].zoom); publicMap.setBaseLayer(publicMap.layers[json.configmap[0].baselayer]); } + } @@ -1636,3 +1646,20 @@ function setCookie() { } +function getMarker() { + //clearMarker(); + console.log("setDefaultCenterMapDone = "+setDefaultCenterMapDone) + + if (tabcheckchild != '' && setDefaultCenterMapDone == 1) { + var bounds = publicMap.getExtent().transform(projection1, projection2).toGeometry().toString(); + var alreadyLoadedObservations = featuresId.join(); + console.log("before display block"); + document.getElementById("loader").style.display = "block"; + + var uri = 'lib/php/public/getMarker.php?listType='+tabcheckchild+'&dateLastModif='+dateLastModif+'&status='+StatusPOIFieldMapItemMenu.getValue()+'&priorite='+comboPrioritePOIMapItemMenu.getValue()+'&nbSupportMinimum='+nbSupportMinimum+'&bounds=' + bounds+'&alreadyLoadedObservations='+alreadyLoadedObservations ; + console.log(publicMap.getExtent().transform(projection1, projection2).toGeometry().toString());//transform + OpenLayers.loadURL(uri, '', this, displayMarker); + + } +} + diff --git a/lib/php/public/getMarker.php b/lib/php/public/getMarker.php index f8fb8b20..cdbda4cc 100644 --- a/lib/php/public/getMarker.php +++ b/lib/php/public/getMarker.php @@ -6,6 +6,7 @@ case 'mysql' : if (DEBUG) { error_log ( date ( "Y-m-d H:i:s" ) . " - public/getMarker.php \n", 3, LOG_FILE ); + error_log ( date ( "Y-m-d H:i:s" ) . " - bounds = ".$_GET['bounds']." \n", 3, LOG_FILE ); } $link = mysql_connect ( DB_HOST, DB_USER, DB_PASS ); mysql_select_db ( DB_NAME ); @@ -39,7 +40,9 @@ error_log ( date ( "Y-m-d H:i:s" ) . " - public/getMarker.php datesqlappend = ".$datesqlappend."\n", 3, LOG_FILE ); } } - + if (isset($_GET['bounds']) && $_GET['bounds'] != ''){ + $boundsSQL = " AND ST_Within(poi.geom_poi,ST_GeomFromText('".$_GET['bounds']."') )=1 "; + } if (isset ($_GET ['status']) && ($_GET ['status'] == "" || $_GET ['status'] == 'all'|| $_GET ['status'] == 'undefined')) { $statussqlappend = ''; } else { @@ -57,13 +60,17 @@ if (isset ( $_GET ["nbSupportMinimum"] ) && $_GET ["nbSupportMinimum"] != '' && $_GET ["nbSupportMinimum"] > 0) { // filter by status given by the collectivity $sqlappend .= ' AND poi.id_poi IN (select poi_poi_id from support_poi group by poi_poi_id having count(*) >= '.$_GET ["nbSupportMinimum"].')'; } - $sqlappend .= $datesqlappend . $statussqlappend; + if (isset ( $_GET ["alreadyLoadedObservations"] ) && $_GET ["alreadyLoadedObservations"] != '') { // filter by status given by the collectivity + $sqlappend .= ' AND poi.id_poi NOT IN ('.$_GET ["alreadyLoadedObservations"].')'; + } + + $sqlappend .= $datesqlappend . $statussqlappend . $boundsSQL; } $sql .= $sqlappend; $result = mysql_query ( $sql ); if (DEBUG) { error_log ( date ( "Y-m-d H:i:s" ) . " - public/getMarker.php sql = $sql\n", 3, LOG_FILE ); - error_log ( date ( "Y-m-d H:i:s" ) . " - public/getMarker.php sql = $datesqlappend\n", 3, LOG_FILE ); + error_log ( date ( "Y-m-d H:i:s" ) . " - public/getMarker.php datesqlappend = $datesqlappend\n", 3, LOG_FILE ); } $i = 0; while ( $row = mysql_fetch_array ( $result ) ) { From 6b828a718392e2c65055af860ce68cdebd795e9e Mon Sep 17 00:00:00 2001 From: gerald2545 Date: Tue, 24 Sep 2019 23:07:09 +0200 Subject: [PATCH 2/7] #227 display obesrvations only in the current view port --- lib/js/common.js | 10 ++++++++++ lib/js/public/map.js | 21 +++++++++++++-------- lib/php/public/getMarker.php | 19 +++++++++++++++++-- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/lib/js/common.js b/lib/js/common.js index cae7c60b..9b666719 100644 --- a/lib/js/common.js +++ b/lib/js/common.js @@ -14,6 +14,7 @@ var dateFieldModifiedSince = new Ext.form.DateField( console.log('%o',value); dateLastModif = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate(); console.log(dateLastModif); + clearMarker(); getMarker(); } } @@ -25,6 +26,7 @@ var CancelDateFilterItem = new Ext.Button({ handler: function() { dateFieldModifiedSince.reset(); dateLastModif ='1900-01-01'; + clearMarker(); getMarker(); } }); @@ -38,6 +40,7 @@ var numberFieldNbSupport = new Ext.form.NumberField( blur: function(field) { console.log('nbSupportMinimum = %o',field.getValue()); nbSupportMinimum = field.getValue(); + clearMarker(); getMarker(); },specialkey: function (field, e) { if (field.getValue() != 'null') { @@ -45,6 +48,7 @@ var numberFieldNbSupport = new Ext.form.NumberField( nbSupportMinimum = field.getValue(); console.log('nbSupportMinimum = %o',field.getValue()); console.log(e.getKey()); + clearMarker(); getMarker(); } } @@ -61,6 +65,7 @@ var CancelVoteFilterItem = new Ext.Button({ handler: function() { numberFieldNbSupport.reset(); nbSupportMinimum = 0; + clearMarker(); getMarker(); } }); @@ -72,6 +77,7 @@ var searchObservationField = new Ext.form.NumberField({ width:150, listeners: { blur: function(field) { + getMarkerByID(field.getValue()); },specialkey: function (field, e) { if (field.getValue() != 'null') { @@ -334,6 +340,7 @@ var prioritePOIList = new Ext.data.JsonStore({ }); comboPrioritePOIMapItemMenu.on('select', function() { console.log("Appel getMarker avec priorite = "+comboPrioritePOIMapItemMenu.getValue()); + clearMarker(); getMarker(); }); comboPrioritePOIMapItemMenu.on('afterrender', function(){ @@ -345,6 +352,7 @@ var prioritePOIList = new Ext.data.JsonStore({ text:'', handler: function() { comboPrioritePOIMapItemMenu.reset(); + clearMarker(); getMarker(); } @@ -378,6 +386,7 @@ var prioritePOIList = new Ext.data.JsonStore({ }); StatusPOIFieldMapItemMenu.on('select', function() { console.log("Appel getMarker avec status = "+StatusPOIFieldMapItemMenu.getValue()); + clearMarker(); getMarker(); }); var CancelStatusFilterItem = new Ext.Button({ @@ -386,6 +395,7 @@ var prioritePOIList = new Ext.data.JsonStore({ text:'', handler: function() { StatusPOIFieldMapItemMenu.reset(); + clearMarker(); getMarker(); } }); diff --git a/lib/js/public/map.js b/lib/js/public/map.js index 22a18c72..9d91c8d5 100644 --- a/lib/js/public/map.js +++ b/lib/js/public/map.js @@ -100,6 +100,8 @@ publicMap.addControl(click); click.activate(); function clearMarker() { console.log("clearMarker"); + features = []; + featuresId = []; observationsVectorLayer.removeAllFeatures(); observationsVectorLayer.destroyFeatures(); observationsVectorLayer.addFeatures([]); @@ -168,9 +170,15 @@ function displayMarkerAndCenterInPublicMap(response) { var features = []; var featuresId = []; +function displayNumberOfTotalRecords(response){ + console.log("entering displayNumberOfTotalRecords"); + document.getElementById("loader").style.display = "none"; + var json = eval('(' + response.responseText + ')'); + showTooltipNumberOfObservations(json.total_number_of_observations); +} function displayMarker(response) { + console.log("entering displayMarker"); document.getElementById("loader").style.display = "none"; - console.log("after display none"); var json = eval('(' + response.responseText + ')'); if (json.markers != null) { for (var i=0; i Date: Tue, 24 Sep 2019 23:51:15 +0200 Subject: [PATCH 3/7] update version to 1.7.0 --- admin.php | 88 +++++++++++++++++++++++++++---------------------------- index.php | 36 +++++++++++------------ 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/admin.php b/admin.php index ce64b2da..becf6ca1 100644 --- a/admin.php +++ b/admin.php @@ -28,14 +28,14 @@
VelObs
Loading styles and images ...
- + - - + +