summaryrefslogtreecommitdiff
path: root/chimere/static
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-02-26 00:30:51 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-02-26 00:30:51 +0100
commit8b3d6619b0def3eaec09f16b14e92c9bd9b59772 (patch)
tree71d4dbf1edbf4c398f1f8e65143329768e1c8edf /chimere/static
parentfee4daab6598a3d6e51a31e2e70e059fc5419908 (diff)
downloadChimère-8b3d6619b0def3eaec09f16b14e92c9bd9b59772.tar.bz2
Chimère-8b3d6619b0def3eaec09f16b14e92c9bd9b59772.zip
Workon polygon edition widget.
Diffstat (limited to 'chimere/static')
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js94
1 files changed, 71 insertions, 23 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index 9927f9b..a94670c 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -16,6 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
See the file COPYING for details.
*/
+var extra_url;
+
function transformExtent(extent) {
return ol.proj.transformExtent(
extent, EPSG_DISPLAY_PROJECTION, EPSG_PROJECTION);
@@ -99,7 +101,7 @@ function transform(obj) {
itinerary_step_number:0, // current step number
icon_offset: [0, 0],
edition: false, // edition mode
- edition_type_is_route: false, // route or POI edition
+ edition_type: 'marker', // marker, route or polygon edition
//default_icon: new OpenLayers.Icon(
// 'http://www.openlayers.org/dev/img/marker-green.png',
// new OpenLayers.Size(21, 25),
@@ -156,7 +158,7 @@ function transform(obj) {
new OpenLayers.Pixel(0, -32));
}
*/
- if (defaults.map_layers == null || defaults.map_layers == []){
+ if (defaults.map_layers == null || ! defaults.map_layers.length){
defaults.map_layers = [
new ol.layer.Tile({
style: 'Road',
@@ -352,21 +354,23 @@ function transform(obj) {
}
);
settings.current_feature = feature;
- if (feature) {
- $(settings.popup_item).popover('destroy');
- var coords = feature.getGeometry().getCoordinates();
- settings.popup.setPosition(coords);
- settings.popup.setOffset([feature.get('popup_offset_x'),
- -feature.get('popup_offset_y')]);
- $(settings.popup_item).popover({
- 'placement': 'top',
- 'html': true,
- 'content': feature.get('name')
- });
- $(settings.popup_item).popover('show');
- methods.display_feature_detail(feature.get('pk'));
- } else {
- $(settings.popup_item).popover('destroy');
+ if (!settings.edition){
+ if (feature) {
+ $(settings.popup_item).popover('destroy');
+ var coords = feature.getGeometry().getCoordinates();
+ settings.popup.setPosition(coords);
+ settings.popup.setOffset([feature.get('popup_offset_x'),
+ -feature.get('popup_offset_y')]);
+ $(settings.popup_item).popover({
+ 'placement': 'top',
+ 'html': true,
+ 'content': feature.get('name')
+ });
+ $(settings.popup_item).popover('show');
+ methods.display_feature_detail(feature.get('pk'));
+ } else {
+ $(settings.popup_item).popover('destroy');
+ }
}
});
@@ -383,6 +387,39 @@ function transform(obj) {
/* Vectors layer */
settings.layerVectors = new ol.layer.Vector();
settings.map.addLayer(settings.layerVectors);
+ if (settings.edition && (settings.edition_type == 'polygon'
+ || settings.edition_type == 'route')){
+ settings.editionSource = new ol.source.Vector({wrapX: false});
+ settings.editionVector = new ol.layer.Vector({
+ source: settings.editionSource,
+ style: new ol.style.Style({
+ fill: new ol.style.Fill({
+ color: 'rgba(180, 180, 180, 0.3)'
+ }),
+ stroke: new ol.style.Stroke({
+ color: '#ffcc33',
+ width: 2
+ }),
+ image: new ol.style.Circle({
+ radius: 7,
+ fill: new ol.style.Fill({
+ color: '#ffcc33'
+ })
+ })
+ })
+ });
+
+ settings.map.addLayer(settings.editionVector);
+
+ var edition_type;
+ if (settings.edition_type == 'route') edition_type = 'LineString';
+ if (settings.edition_type == 'polygon') edition_type = 'Polygon';
+
+ settings.draw = new ol.interaction.Draw({
+ source: settings.editionSource,
+ type: (edition_type),
+ });
+ }
// OL3-deprecated settings.layerVectors.setOpacity(0.8);
/* OL3-deprecated-routing
if (settings.edition_type_is_route){
@@ -532,10 +569,12 @@ function transform(obj) {
// methods.activateContextMenu()
} else {
/// OL3-TODO
- if (!settings.edition_type_is_route){
- methods.activateMarkerEdit();
- } else {
+ if (settings.edition_type == 'route'){
methods.activateRouteEdit();
+ } else if (settings.edition_type == 'polygon'){
+ methods.activatePolygonEdit();
+ } else {
+ methods.activateMarkerEdit();
}
}
return;
@@ -625,7 +664,13 @@ function transform(obj) {
methods.displayMapMenu);
},
+ activatePolygonEdit: function(){
+ // TODO OL3
+ return;
+ },
activateRouteEdit: function(){
+ // TODO OL3
+ return;
settings.edition_type_is_route = true;
methods.cleanMarker();
settings.map.events.unregister('click', settings.map,
@@ -783,9 +828,6 @@ function transform(obj) {
},
error: function (data, textStatus, errorThrown) {
settings.markers.clear();
- alert(data);
- alert(textStatus);
- alert(errorThrown);
/// OL3-TODO
//settings.layerVectors.removeAllFeatures();
//if (settings.enable_clustering){
@@ -989,6 +1031,12 @@ function transform(obj) {
}
}
},
+ activateDraw: function (){
+ settings.map.addInteraction(settings.draw);
+ },
+ deactivateDraw: function (){
+ settings.map.removeInteraction(settings.draw);
+ },
/*
* Put a marker on the map
*/