summaryrefslogtreecommitdiff
path: root/chimere/static
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-12-16 01:05:03 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-12-16 01:05:03 +0100
commit8a5ba2650678ec22107a1a0a10650b6e0cc14683 (patch)
treef87525ef76b1dfad60dd5a002316927b83add44a /chimere/static
parent3dc5c7a4944dc1d3d4270ed974f1afec68d998b6 (diff)
downloadChimère-8a5ba2650678ec22107a1a0a10650b6e0cc14683.tar.bz2
Chimère-8a5ba2650678ec22107a1a0a10650b6e0cc14683.zip
Improve (greatly) performance for route display on the map
Diffstat (limited to 'chimere/static')
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index 7dd9f4d..3e148b0 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -435,7 +435,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
for(var idx=0; idx<data.categories.length; idx++){
new Image().src = data.categories[idx].icon.url;
if(data.categories[idx].icon_hover){
- new Image().src = data.categories[idx].icon_hover.url;
+ new Image().src =
+ data.categories[idx].icon_hover.url;
}
}
},
@@ -542,7 +543,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
if (!ids) ids = '0';
var uri = extra_url + "getGeoObjects/" + ids;
if (settings.display_submited) uri += "/A_S";
- $.ajax({url: uri,
+ $.ajax({url: uri,
dataType: "json",
success: function (data) {
settings.layerMarkers.clearMarkers();
@@ -557,6 +558,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
methods.addMarker(feature);
} else if (feature.geometry.type == 'LineString') {
methods.addRoute(feature);
+ } else if (feature.geometry.type == 'MultiLineString') {
+ methods.addMultiLine(feature);
}
}
if (settings.enable_clustering){
@@ -566,7 +569,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
}
settings.map.resetLayersZIndex();
},
- error: function (data) {
+ error: function (data, textStatus, errorThrown) {
settings.layerMarkers.clearMarkers();
settings.layerVectors.removeAllFeatures();
if (settings.enable_clustering){
@@ -593,8 +596,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
uri += "getAvailableCategories/";
var params = {"current_extent": current_extent}
if (settings.display_submited) params["status"] = "A_S";
- $.ajax({url: uri,
- data: params,
+ $.ajax({url: uri,
+ data: params,
cache: false,
success: function (data) {
$('#categories').empty();
@@ -934,13 +937,29 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
settings.current_feature = new OpenLayers.Feature.Vector();
var style = OpenLayers.Util.extend({},
- OpenLayers.Feature.Vector.style['default']);
+ OpenLayers.Feature.Vector.style['default']);
style.strokeColor = route.properties.color;
style.strokeWidth = 3;
settings.current_feature.style = style;
settings.current_feature.geometry = linestring;
settings.layerVectors.addFeatures([settings.current_feature]);
},
+ /*
+ * Put a multiline on the map
+ */
+ addMultiLine: function(feature) {
+ var gformat = new OpenLayers.Format.GeoJSON();
+ var feats = gformat.read(feature);
+ var style = OpenLayers.Util.extend({},
+ OpenLayers.Feature.Vector.style['default']);
+ style.strokeColor = feature.properties.color;
+ style.strokeWidth = 2;
+ feats[0].style = style;
+ feats[0].geometry = feats[0].geometry.transform(
+ EPSG_DISPLAY_PROJECTION,
+ settings.map.getProjectionObject());
+ settings.layerVectors.addFeatures(feats);
+ },
routingInputChange: function(nominatim_id){
$('#map_menu_clear').show();
switch(nominatim_id){