diff options
-rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 68 |
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) { |