Add 'hide areas' button to data view
This commit is contained in:
parent
62d9dbdc23
commit
59dcc8b253
1 changed files with 40 additions and 11 deletions
|
@ -9,6 +9,7 @@ page << <<EOJ
|
|||
var browseDataLayer;
|
||||
var browseSelectControl;
|
||||
var browseObjectList;
|
||||
var areasHidden = false;
|
||||
|
||||
OpenLayers.Feature.Vector.style['default'].strokeWidth = 3;
|
||||
OpenLayers.Feature.Vector.style['default'].cursor = "pointer";
|
||||
|
@ -33,12 +34,15 @@ page << <<EOJ
|
|||
|
||||
map.events.register("moveend", map, showData);
|
||||
map.events.triggerEvent("moveend");
|
||||
$("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.hide_areas')}";
|
||||
$("browse_hide_areas_box").style.display = "inline";
|
||||
$("browse_hide_areas_box").onclick = hideAreas;
|
||||
}
|
||||
|
||||
function showData() {
|
||||
if (browseMode == "auto") {
|
||||
if (map.getZoom() >= 15) {
|
||||
useMap();
|
||||
useMap(false);
|
||||
} else {
|
||||
setStatus("#{I18n.t('browse.start_rjs.zoom_or_select')}");
|
||||
}
|
||||
|
@ -84,7 +88,7 @@ page << <<EOJ
|
|||
|
||||
$("browse_select_box").onclick = startDrag;
|
||||
|
||||
function useMap() {
|
||||
function useMap(reload) {
|
||||
var bounds = map.getExtent();
|
||||
var projected = bounds.clone().transform(map.getProjectionObject(), epsg4326);
|
||||
|
||||
|
@ -98,7 +102,7 @@ page << <<EOJ
|
|||
center.lat + (tileHeight / 2));
|
||||
|
||||
browseBounds = tileBounds;
|
||||
getData(tileBounds);
|
||||
getData(tileBounds, reload);
|
||||
|
||||
browseMode = "auto";
|
||||
|
||||
|
@ -108,6 +112,22 @@ page << <<EOJ
|
|||
return false;
|
||||
}
|
||||
|
||||
function hideAreas() {
|
||||
$("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.show_areas')}";
|
||||
$("browse_hide_areas_box").style.display = "inline";
|
||||
$("browse_hide_areas_box").onclick = showAreas;
|
||||
areasHidden = true;
|
||||
useMap(true);
|
||||
}
|
||||
|
||||
function showAreas() {
|
||||
$("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.hide_areas')}";
|
||||
$("browse_hide_areas_box").style.display = "inline";
|
||||
$("browse_hide_areas_box").onclick = hideAreas;
|
||||
areasHidden = false;
|
||||
useMap(true);
|
||||
}
|
||||
|
||||
$("browse_select_view").onclick = useMap;
|
||||
|
||||
function endDrag(bbox) {
|
||||
|
@ -122,6 +142,7 @@ page << <<EOJ
|
|||
|
||||
$("browse_select_box").innerHTML = "#{I18n.t('browse.start_rjs.manually_select')}";
|
||||
$("browse_select_view").style.display = "inline";
|
||||
|
||||
}
|
||||
|
||||
function displayFeatureWarning() {
|
||||
|
@ -181,22 +202,28 @@ page << <<EOJ
|
|||
}
|
||||
}
|
||||
|
||||
function getData(bounds) {
|
||||
function getData(bounds,reload) {
|
||||
var projected = bounds.clone().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
|
||||
var size = projected.getWidth() * projected.getHeight();
|
||||
|
||||
if (size > #{MAX_REQUEST_AREA}) {
|
||||
setStatus(i18n("#{I18n.t('browse.start_rjs.unable_to_load_size', :max_bbox_size => MAX_REQUEST_AREA)}", { bbox_size: size }));
|
||||
} else {
|
||||
loadGML("/api/#{API_VERSION}/map?bbox=" + projected.toBBOX());
|
||||
loadGML("/api/#{API_VERSION}/map?bbox=" + projected.toBBOX(), reload);
|
||||
}
|
||||
}
|
||||
|
||||
function loadGML(url) {
|
||||
function loadGML(url,reload) {
|
||||
setStatus("#{I18n.t('browse.start_rjs.loading')}");
|
||||
$("browse_content").innerHTML = "";
|
||||
|
||||
if (!browseDataLayer) {
|
||||
fOptions = {
|
||||
checkTags: true,
|
||||
interestingTagsExclude: ['source','source_ref','source:ref','history','attribution','created_by','tiger:county','tiger:tlid','tiger:upload_uuid']
|
||||
};
|
||||
if (areasHidden) fOptions.areaTags = [];
|
||||
|
||||
if (!browseDataLayer || reload) {
|
||||
var style = new OpenLayers.Style();
|
||||
|
||||
style.addRules([new OpenLayers.Rule({
|
||||
|
@ -207,12 +234,11 @@ page << <<EOJ
|
|||
}
|
||||
})]);
|
||||
|
||||
if (browseDataLayer) browseDataLayer.destroyFeatures();
|
||||
|
||||
browseDataLayer = new OpenLayers.Layer.GML("Data", url, {
|
||||
format: OpenLayers.Format.OSM,
|
||||
formatOptions: {
|
||||
checkTags: true,
|
||||
interestingTagsExclude: ['source','source_ref','source:ref','history','attribution','created_by','tiger:county','tiger:tlid','tiger:upload_uuid']
|
||||
},
|
||||
formatOptions: fOptions,
|
||||
maxFeatures: 100,
|
||||
requestSuccess: customDataLoader,
|
||||
displayInLayerSwitcher: false,
|
||||
|
@ -222,6 +248,7 @@ page << <<EOJ
|
|||
})
|
||||
});
|
||||
browseDataLayer.events.register("loadend", browseDataLayer, dataLoaded );
|
||||
|
||||
map.addLayer(browseDataLayer);
|
||||
|
||||
browseSelectControl = new OpenLayers.Control.SelectFeature(browseDataLayer, { onSelect: onFeatureSelect });
|
||||
|
@ -230,6 +257,8 @@ page << <<EOJ
|
|||
map.addControl(browseSelectControl);
|
||||
browseSelectControl.activate();
|
||||
} else {
|
||||
browseDataLayer.destroyFeatures();
|
||||
browseDataLayer.format(fOptions);
|
||||
browseDataLayer.setUrl(url);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue