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(){
|
function mapInit(){
|
||||||
map = createMap("map");
|
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 %>
|
<% if bbox %>
|
||||||
var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
|
var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
|
||||||
|
|
||||||
|
@ -118,6 +122,14 @@ by the OpenStreetMap project and its contributors.
|
||||||
handleResize();
|
handleResize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleData() {
|
||||||
|
if (map.dataLayer.visibility) {
|
||||||
|
<%= remote_function :url => { :controller => 'browse', :action => 'start' } %>
|
||||||
|
} else {
|
||||||
|
closeSidebar();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getPosition() {
|
function getPosition() {
|
||||||
return getMapCenter();
|
return getMapCenter();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,8 @@ OpenLayers._getScriptLocation = function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createMap(divName, options) {
|
function createMap(divName, options) {
|
||||||
if (!options) { options = {} }
|
options = options || {};
|
||||||
|
|
||||||
map = new OpenLayers.Map(divName, {
|
map = new OpenLayers.Map(divName, {
|
||||||
controls: options.controls || [
|
controls: options.controls || [
|
||||||
new OpenLayers.Control.ArgParser(),
|
new OpenLayers.Control.ArgParser(),
|
||||||
|
@ -40,9 +41,6 @@ function createMap(divName, options) {
|
||||||
wrapDateLine: true
|
wrapDateLine: true
|
||||||
});
|
});
|
||||||
map.addLayer(maplint);
|
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);
|
var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
|
||||||
markers = new OpenLayers.Layer.Markers("Markers", {
|
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"
|
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