//= require templates/browse/feature_history
$(document).ready(function () {
- $("#show_data").click(function (e) {
- $.ajax({ url: $(this).attr('href'), success: function (sidebarHtml) {
- startBrowse(sidebarHtml);
- }});
- e.preventDefault();
+ var areasHidden = false;
+
+ var dataLayer = new L.OSM.DataLayer(null, {
+ styles: {
+ way: {
+ weight: 3,
+ color: "#000000",
+ opacity: 0.4
+ },
+ area: {
+ weight: 3,
+ color: "#ff0000"
+ },
+ node: {
+ color: "#00ff00"
+ }
+ }
+ });
+
+ dataLayer.isWayArea = function () {
+ return !areasHidden && L.OSM.DataLayer.prototype.isWayArea.apply(this, arguments);
+ };
+
+ if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') {
+ map.layersControl.addOverlay(dataLayer, I18n.t("browse.start_rjs.data_layer_name"));
+ }
+
+ map.on('layeradd', function (e) {
+ if (e.layer === dataLayer) {
+ $.ajax({ url: "/browse/start", success: function (sidebarHtml) {
+ startBrowse(sidebarHtml);
+ }});
+ }
+ });
+
+ map.on('layerremove', function (e) {
+ if (e.layer === dataLayer) {
+ closeSidebar();
+ }
});
function startBrowse(sidebarHtml) {
var layersById;
var selectedLayer;
var browseObjectList;
- var areasHidden = false;
-
- var dataLayer = new L.OSM.DataLayer(null, {
- styles: {
- way: {
- weight: 3,
- color: "#000000",
- opacity: 0.4
- },
- area: {
- weight: 3,
- color: "#ff0000"
- },
- node: {
- color: "#00ff00"
- }
- }
- });
-
- dataLayer.addTo(map);
-
- dataLayer.isWayArea = function () {
- return !areasHidden && L.OSM.DataLayer.prototype.isWayArea.apply(this, arguments);
- };
var locationFilter = new L.LocationFilter({
enableButton: false,
- adjustButton: false,
- onChange: getData
+ adjustButton: false
}).addTo(map);
+ locationFilter.on("change", getData);
+
$("#sidebar_title").html(I18n.t('browse.start_rjs.data_frame_title'));
$("#sidebar_content").html(sidebarHtml);
map.removeLayer(dataLayer);
map.removeLayer(locationFilter);
map.off("moveend", updateData);
+ locationFilter.off("change", getData);
});
function enableFilter() {
$("#browse_filter_toggle").html(I18n.t('browse.start_rjs.view_data'));
+ locationFilter.setBounds(map.getBounds().pad(-0.2));
locationFilter.enable();
getData();
}
dataLayer.clearLayers();
selectedLayer = null;
- dataLayer.addData(xml);
+ var features = dataLayer.buildFeatures(xml);
+
+ function addFeatures() {
+ dataLayer.addData(features);
- layersById = {};
- var features = [];
+ layersById = {};
- dataLayer.eachLayer(function (layer) {
- var feature = layer.feature;
- layersById[feature.id] = layer;
- features.push({
- typeName: featureTypeName(feature),
- url: "/browse/" + feature.type + "/" + feature.id,
- name: featureName(feature),
- id: feature.id
+ dataLayer.eachLayer(function (layer) {
+ var feature = layer.feature;
+ layersById[feature.id] = layer;
+ $.extend(feature, {
+ typeName: featureTypeName(feature),
+ url: "/browse/" + feature.type + "/" + feature.id,
+ name: featureName(feature)
+ });
});
- });
- browseObjectList = $(JST["templates/browse/feature_list"]({
- features: features,
- url: url
- }))[0];
+ browseObjectList = $(JST["templates/browse/feature_list"]({
+ features: features,
+ url: url
+ }))[0];
- loadObjectList();
+ loadObjectList();
+ }
+
+ if (features.length < maxFeatures) {
+ addFeatures();
+ } else {
+ displayFeatureWarning(features.length, maxFeatures, addFeatures);
+ }
}
});
}