Only add the data layer to the main map, and use the visibility changed
event to handle turning the data layer on and off.
This commit is contained in:
parent
5620d7263a
commit
4d8ea0eed0
3 changed files with 14 additions and 20 deletions
|
@ -86,6 +86,10 @@ by the OpenStreetMap project and its contributors.
|
|||
function mapInit(){
|
||||
map = createMap("map");
|
||||
|
||||
map.dataLayer = new OpenLayers.Layer("Data", { "visibility": false });
|
||||
map.dataLayer.events.register("visibilitychanged", map.dataLayer, toggleData);
|
||||
map.addLayer(map.dataLayer);
|
||||
|
||||
<% if bbox %>
|
||||
var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
|
||||
|
||||
|
@ -118,6 +122,14 @@ by the OpenStreetMap project and its contributors.
|
|||
handleResize();
|
||||
}
|
||||
|
||||
function toggleData() {
|
||||
if (map.dataLayer.visibility) {
|
||||
<%= remote_function :url => { :controller => 'browse', :action => 'start' } %>
|
||||
} else {
|
||||
closeSidebar();
|
||||
}
|
||||
}
|
||||
|
||||
function getPosition() {
|
||||
return getMapCenter();
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ OpenLayers._getScriptLocation = function () {
|
|||
}
|
||||
|
||||
function createMap(divName, options) {
|
||||
if (!options) { options = {} }
|
||||
options = options || {};
|
||||
|
||||
map = new OpenLayers.Map(divName, {
|
||||
controls: options.controls || [
|
||||
new OpenLayers.Control.ArgParser(),
|
||||
|
@ -40,9 +41,6 @@ function createMap(divName, options) {
|
|||
wrapDateLine: true
|
||||
});
|
||||
map.addLayer(maplint);
|
||||
var data = new OpenLayers.Layer.Data("Data", {'visibility': false});
|
||||
map.addLayer(data);
|
||||
map.dataLayer = data;
|
||||
|
||||
var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
|
||||
markers = new OpenLayers.Layer.Markers("Markers", {
|
||||
|
|
|
@ -182,19 +182,3 @@ OpenLayers.Layer.OSM.Maplint = OpenLayers.Class(OpenLayers.Layer.OSM, {
|
|||
|
||||
CLASS_NAME: "OpenLayers.Layer.OSM.Maplint"
|
||||
});
|
||||
|
||||
OpenLayers.Layer.Data = OpenLayers.Class(OpenLayers.Layer, {
|
||||
setVisibility: function(vis) {
|
||||
var oldvis = this.visibility;
|
||||
OpenLayers.Layer.prototype.setVisibility.apply(this, arguments);
|
||||
if (!this.map) { return; }
|
||||
if (vis && !oldvis) {
|
||||
new Ajax.Request('/browse/start', {asynchronous:true, evalScripts:true});
|
||||
} else {
|
||||
if (this.stopBrowse) {
|
||||
this.stopBrowse();
|
||||
closeSidebar();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue