Refactoring 4 life
This commit is contained in:
parent
3a6c476833
commit
64f5b3f511
6 changed files with 52 additions and 43 deletions
|
@ -5,6 +5,7 @@
|
|||
//= require augment
|
||||
//= require leaflet
|
||||
//= require leaflet.osm
|
||||
//= require leaflet.extend
|
||||
//= require leaflet.locationfilter
|
||||
//= require i18n/translations
|
||||
//= require oauth
|
||||
|
@ -78,9 +79,7 @@ function updatelinks(loc, zoom, layers, bounds, object) {
|
|||
var minzoom = $(link).data("minzoom");
|
||||
if (minzoom) {
|
||||
var name = link.id.replace(/anchor$/, "");
|
||||
|
||||
$(link).off("click.minzoom");
|
||||
|
||||
if (zoom >= minzoom) {
|
||||
$(link).attr("title", I18n.t("javascripts.site." + name + "_tooltip"))
|
||||
.removeClass("disabled");
|
||||
|
|
|
@ -8,23 +8,17 @@ $(document).ready(function () {
|
|||
|
||||
$("#linkloader").load(function () { loaded = true; });
|
||||
|
||||
if (select) {
|
||||
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" +
|
||||
querystring.stringify({
|
||||
var query = {
|
||||
left: left,
|
||||
top: top,
|
||||
right: right,
|
||||
bottom: bottom,
|
||||
select: select
|
||||
}));
|
||||
} else {
|
||||
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" + querystring.stringify({
|
||||
left: left,
|
||||
top: top,
|
||||
right: right,
|
||||
bottom: bottom
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
if (select) query.select = select;
|
||||
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" +
|
||||
querystring.stringify(query));
|
||||
|
||||
setTimeout(function () {
|
||||
if (!loaded) alert(I18n.t('site.index.remote_failed'));
|
||||
|
|
31
app/assets/javascripts/leaflet.extend.js.erb
Normal file
31
app/assets/javascripts/leaflet.extend.js.erb
Normal file
|
@ -0,0 +1,31 @@
|
|||
L.extend(L.LatLngBounds.prototype, {
|
||||
getSize: function () {
|
||||
return (this._northEast.lat - this._southWest.lat) *
|
||||
(this._northEast.lng - this._southWest.lng);
|
||||
},
|
||||
|
||||
wrap: function () {
|
||||
return new L.LatLngBounds(this._southWest.wrap(), this._northEast.wrap());
|
||||
}
|
||||
});
|
||||
|
||||
L.extend(L.Map.prototype, {
|
||||
getLayersCode: function() {
|
||||
var layerConfig = '';
|
||||
for (var i in this._layers) { // TODO: map.eachLayer
|
||||
var layer = this._layers[i];
|
||||
if (layer.options && layer.options.code) {
|
||||
layerConfig += layer.options.code;
|
||||
}
|
||||
}
|
||||
return layerConfig;
|
||||
},
|
||||
getMapBaseLayerId: function() {
|
||||
for (var i in this._layers) { // TODO: map.eachLayer
|
||||
var layer = this._layers[i];
|
||||
if (layer.options && layer.options.keyid) return layer.options.keyid;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
L.Icon.Default.imagePath = <%= "#{asset_prefix}/images".to_json %>;
|
|
@ -1,18 +1,3 @@
|
|||
// Leaflet extensions
|
||||
L.extend(L.LatLngBounds.prototype, {
|
||||
getSize: function () {
|
||||
return (this._northEast.lat - this._southWest.lat) *
|
||||
(this._northEast.lng - this._southWest.lng);
|
||||
},
|
||||
|
||||
wrap: function () {
|
||||
return new L.LatLngBounds(this._southWest.wrap(), this._northEast.wrap());
|
||||
}
|
||||
});
|
||||
|
||||
L.Icon.Default.imagePath = <%= "#{asset_prefix}/images".to_json %>;
|
||||
|
||||
var objectLayer;
|
||||
var objectLoader;
|
||||
|
||||
function getUserIcon(url) {
|
||||
|
@ -28,13 +13,13 @@ function getUserIcon(url) {
|
|||
|
||||
function addObjectToMap(object, map, options) {
|
||||
if (objectLoader) objectLoader.abort();
|
||||
if (objectLayer) map.removeLayer(objectLayer);
|
||||
if (map.objectLayer) map.removeLayer(map.objectLayer);
|
||||
|
||||
objectLoader = $.ajax({
|
||||
url: OSM.apiUrl(object),
|
||||
dataType: "xml",
|
||||
success: function (xml) {
|
||||
objectLayer = new L.OSM.DataLayer(null, {
|
||||
map.objectLayer = new L.OSM.DataLayer(null, {
|
||||
styles: {
|
||||
node: options.style,
|
||||
way: options.style,
|
||||
|
@ -42,7 +27,7 @@ function addObjectToMap(object, map, options) {
|
|||
}
|
||||
});
|
||||
|
||||
objectLayer.interestingNode = function (node, ways, relations) {
|
||||
map.objectLayer.interestingNode = function (node, ways, relations) {
|
||||
if (object.type === "node") {
|
||||
return true;
|
||||
} else if (object.type === "relation") {
|
||||
|
@ -54,12 +39,12 @@ function addObjectToMap(object, map, options) {
|
|||
}
|
||||
};
|
||||
|
||||
objectLayer.addData(xml);
|
||||
map.objectLayer.addData(xml);
|
||||
|
||||
if (options.zoom) map.fitBounds(objectLayer.getBounds());
|
||||
if (options.callback) options.callback(objectLayer.getBounds());
|
||||
if (options.zoom) map.fitBounds(map.objectLayer.getBounds());
|
||||
if (options.callback) options.callback(map.objectLayer.getBounds());
|
||||
|
||||
objectLayer.addTo(map);
|
||||
map.objectLayer.addTo(map);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue