diff options
| 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 |
| commit | 8a5ba2650678ec22107a1a0a10650b6e0cc14683 (patch) | |
| tree | f87525ef76b1dfad60dd5a002316927b83add44a /chimere/static | |
| parent | 3dc5c7a4944dc1d3d4270ed974f1afec68d998b6 (diff) | |
| download | Chimè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.js | 31 |
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){ |
