summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-05-08 22:42:29 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-05-08 22:42:29 +0200
commite45ed95e816d7b78d92014fd9f92e994ef04cdd8 (patch)
tree918ebc89db4d22e1dee8826270a3db9c20dbf557
parentebf421edb7d14ed87b24b723f9d8f5326b155ddf (diff)
downloadChimère-v3.0-style-test.tar.bz2
Chimère-v3.0-style-test.zip
Work to simplify style managementv3.0-style-test
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js68
1 files changed, 67 insertions, 1 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index 4852edf..0010f34 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -331,9 +331,56 @@ function transform(obj) {
features: settings.dbFeatures
});
+ /*
+ settings.sourceDbFeatures.on('addFeature',
+ function(e){
+ feature = e.feature;
+ if (feature.geometry.type == 'Point'){
+ methods.addMarker(feature);
+ } else if (feature.geometry.type == 'Polygon') {
+ methods.addPolygon(feature);
+ } else if (feature.geometry.type == 'LineString') {
+ //OL3 methods.addRoute(feature);
+ } else if (feature.geometry.type == 'MultiLineString') {
+ //OL3 methods.addMultiLine(feature);
+ }
+ }
+ );*/
+ featureStyle = function(feature, resolution) {
+ console.log(feature);
+ if (feature.geometry.type == 'Point'){
+ var iconStyle;
+ for (var i in settings.iconStyles){
+ if (i == feature.properties.icon_path){
+ iconStyle = settings.iconStyles[i];
+ }
+ }
+ if (!iconStyle){
+ var icon_url = MEDIA_URL + feature.properties.icon_path;
+ var size = [feature.properties.icon_width, feature.properties.icon_height];
+ var anchor = [feature.properties.icon_popup_offset_x,
+ feature.properties.icon_popup_offset_y];
+ iconStyle = new ol.style.Style({
+ image: new ol.style.Icon({
+ anchor: anchor,
+ anchorXUnits: 'pixels',
+ anchorYUnits: 'pixels',
+ src: icon_url,
+ size: size
+ })
+ });
+ settings.iconStyles[feature.properties.icon_path] = iconStyle;
+ }
+ return [iconStyle];
+ } else if (feature.geometry.type == 'Polygon') {
+ }
+ }
+
settings.layerDbFeatures = new ol.layer.Vector({
- source: settings.sourceDbFeatures
+ source: settings.sourceDbFeatures,
+ style: featureStyle
});
+
settings.map.addLayer(settings.layerDbFeatures);
// popup management
@@ -866,6 +913,7 @@ function transform(obj) {
settings.layerCluster.removeAllFeatures();
}
if (!data.features) return;
+ /*
for (var i = 0; i < data.features.length; i++) {
var feature = data.features[i];
if (feature.geometry.type == 'Point'){
@@ -877,12 +925,30 @@ function transform(obj) {
} else if (feature.geometry.type == 'MultiLineString') {
//OL3 methods.addMultiLine(feature);
}
+ }*/
+ /*
+ for (var i = 0; i < data.features.length; i++) {
+ var feature = data.features[i];
+ for (k in feature) console.log(k);
+ settings.sourceDbFeatures.addFeature(parser, feature);
+ }
+ settings.dbFeatures.extend(
+ parser.readFeatures(data)
+ );
+ */
+ var parser = new ol.format.GeoJSON();
+ for (var i = 0; i < data.features.length; i++) {
+ var feature = data.features[i];
+ settings.dbFeatures.extend(
+ parser.readFeatures(feature)
+ );
}
if (settings.enable_clustering){
settings.layerCluster.addFeatures(
settings.cluster_array);
methods.cleanCluster();
}
+ settings.map.render();
// settings.map.resetLayersZIndex();
},
error: function (data, textStatus, errorThrown) {