From ef1bc6635dac0c4a4c89b43b5c0feb594749c0ac Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@bioforsk.no> Date: Thu, 12 May 2016 14:22:10 +0200 Subject: [PATCH] Added view of locations, not just random GeoJSON --- .../static/observations/images/bug.png | Bin 0 -> 6610 bytes .../static/observations/images/bug_medium.png | Bin 0 -> 3608 bytes .../observations/js/observationViewMap.js | 120 +++++++++++------- .../templates/observations/detail.html | 12 +- 4 files changed, 86 insertions(+), 46 deletions(-) create mode 100644 observations/static/observations/images/bug.png create mode 100644 observations/static/observations/images/bug_medium.png diff --git a/observations/static/observations/images/bug.png b/observations/static/observations/images/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a48707ddd5728cd10d07889d46b64d67bbe85a GIT binary patch literal 6610 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<Z@k26CeN+NuHtdjF{^%7I^ zlT!66atjzhz{b9!ATc>RwL~E)H9a%WR_Xoj{Yna%DYi=CroINg1<t7%nI2U|slio# zA<0$Q$(AWf_I6x06;>6w1-Ypui3%0DIeEoa6}C!XbFK1<tw6&1N(x{lCE2!0jvxya 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 aXJ@E?`t(3pYT|y-RE(#qpUXO@geCwr^O3m# literal 0 HcmV?d00001 diff --git a/observations/static/observations/images/bug_medium.png b/observations/static/observations/images/bug_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..07c546946090b01e75d5f79324498148468bf730 GIT binary patch literal 3608 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 literal 0 HcmV?d00001 diff --git a/observations/static/observations/js/observationViewMap.js b/observations/static/observations/js/observationViewMap.js index 43a88c5e..fe85e9e0 100644 --- a/observations/static/observations/js/observationViewMap.js +++ b/observations/static/observations/js/observationViewMap.js @@ -21,7 +21,7 @@ var map; var observationLayer; -var initMap = function(geoJSON, container, mapAttribution) +var initMap = function(geoJSON, poi, container, mapAttribution) { var backgroundLayer = new ol.layer.Tile({ source: new ol.source.OSM({ @@ -50,49 +50,79 @@ var initMap = function(geoJSON, container, mapAttribution) map.setView(view); var features = new ol.Collection(); - var featureOverlay = new ol.layer.Vector({ - source: new ol.source.Vector({ - features: features - }), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 0, 255, 0.2)' - }), - stroke: new ol.style.Stroke({ - color: '#ff00ff', - width: 2 - }), - image: new ol.style.Circle({ - radius: 7, - fill: new ol.style.Fill({ - color: '#ff00ff' - }) - }) - }) - }); - var format = new ol.format.GeoJSON(); - var drawnfeatures = format.readFeatures(geoJSON, { - dataProjection: 'EPSG:4326', - featureProjection: map.getView().getProjection().getCode() - }); + if(geoJSON != null) + { + var featureOverlay = new ol.layer.Vector({ + source: new ol.source.Vector({ + features: features + }), + style: new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255, 0, 255, 0.2)' + }), + stroke: new ol.style.Stroke({ + color: '#ff00ff', + width: 2 + }), + image: new ol.style.Circle({ + radius: 7, + fill: new ol.style.Fill({ + color: '#ff00ff' + }) + }) + }) + }); + + + var format = new ol.format.GeoJSON(); + var drawnfeatures = format.readFeatures(geoJSON, { + dataProjection: 'EPSG:4326', + featureProjection: map.getView().getProjection().getCode() + }); + - // TODO: Convert small areas to points on large scale views - /** - for(var i in drawnfeatures) - { - console.log(drawnfeatures[i].getGeometryName()); - var geome = drawnfeatures[i]; - if(geome.getGeometry() instanceof ol.geom.Polygon) - { - console.log(geome.getGeometry().getArea()); - } - - } - console.log(drawnfeatures); - */ - //featureOverlay.clear(true); - featureOverlay.getSource().addFeatures(drawnfeatures); - featureOverlay.setMap(map); - extent = featureOverlay.getSource().getExtent(); - map.getView().fit(extent, map.getSize()); + // TODO: Convert small areas to points on large scale views + /** + for(var i in drawnfeatures) + { + console.log(drawnfeatures[i].getGeometryName()); + var geome = drawnfeatures[i]; + if(geome.getGeometry() instanceof ol.geom.Polygon) + { + console.log(geome.getGeometry().getArea()); + } + + } + console.log(drawnfeatures); + */ + //featureOverlay.clear(true); + featureOverlay.getSource().addFeatures(drawnfeatures); + featureOverlay.setMap(map); + + extent = featureOverlay.getSource().getExtent(); + map.getView().fit(extent, map.getSize()); + } + else + { + /*var poiLayer = new ol.layer.Vector({ + source: new ol.source.Vector({ + url: "http://" + settings.vipslogicServerName + "/rest/pois/kml/" + settings.vipsOrganizationId + "?excludePoiId=" + poi.pointOfInterestId, + projection: "EPSG:3857", + format: new ol.format.KML() + }) + }); + map.addLayer(poiLayer);*/ + var centerPosition =ol.proj.transform([poi.longitude,poi.latitude], 'EPSG:4326', map.getView().getProjection().getCode()); + view.setCenter(centerPosition); + + // Marker overlay + stationMarker = new ol.Overlay({ + position: centerPosition, + positioning: 'bottom-center', + element: document.getElementById('poiMarker'), + stopEvent: false + }); + + map.addOverlay(stationMarker); + } } \ No newline at end of file diff --git a/observations/templates/observations/detail.html b/observations/templates/observations/detail.html index f0c72b4b..cfbbe408 100644 --- a/observations/templates/observations/detail.html +++ b/observations/templates/observations/detail.html @@ -45,6 +45,7 @@ <div id="observationViewMap" class="map" style="height: 400px;"></div> </div> </div> + <div style="display: none;"><div id="poiMarker" title="Marker"><img src="{% static "observations/images/bug_medium.png" %}"/></div></div> </div> {% endblock %} {% block customCSS %} @@ -87,7 +88,16 @@ var illustration = observation.observationIllustrationSet[0]; document.getElementById("observationIllustration").innerHTML = "<img src='http://" + settings.vipslogicServerName + "/static/images/observations/" + observation.organismId + "/" + illustration.observationIllustrationPK.fileName + "' class='img-responsive'/>"; } - initMap(observation.geoinfo,"observationViewMap","{{settings.MAP_ATTRIBUTION|safe}}"); + if(observation.locationPointOfInterestId > 0) + { + $.getJSON( "http://" + settings.vipslogicServerName + "/rest/poi/" + observation.locationPointOfInterestId , function( poi ) { + initMap(null,poi,"observationViewMap","{{settings.MAP_ATTRIBUTION|safe}}") + }); + } + else + { + initMap(observation.geoinfo,null,"observationViewMap","{{settings.MAP_ATTRIBUTION|safe}}"); + } }); }); </script> -- GitLab