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 augment
|
||||||
//= require leaflet
|
//= require leaflet
|
||||||
//= require leaflet.osm
|
//= require leaflet.osm
|
||||||
|
//= require leaflet.extend
|
||||||
//= require leaflet.locationfilter
|
//= require leaflet.locationfilter
|
||||||
//= require i18n/translations
|
//= require i18n/translations
|
||||||
//= require oauth
|
//= require oauth
|
||||||
|
@ -78,9 +79,7 @@ function updatelinks(loc, zoom, layers, bounds, object) {
|
||||||
var minzoom = $(link).data("minzoom");
|
var minzoom = $(link).data("minzoom");
|
||||||
if (minzoom) {
|
if (minzoom) {
|
||||||
var name = link.id.replace(/anchor$/, "");
|
var name = link.id.replace(/anchor$/, "");
|
||||||
|
|
||||||
$(link).off("click.minzoom");
|
$(link).off("click.minzoom");
|
||||||
|
|
||||||
if (zoom >= minzoom) {
|
if (zoom >= minzoom) {
|
||||||
$(link).attr("title", I18n.t("javascripts.site." + name + "_tooltip"))
|
$(link).attr("title", I18n.t("javascripts.site." + name + "_tooltip"))
|
||||||
.removeClass("disabled");
|
.removeClass("disabled");
|
||||||
|
|
|
@ -8,23 +8,17 @@ $(document).ready(function () {
|
||||||
|
|
||||||
$("#linkloader").load(function () { loaded = true; });
|
$("#linkloader").load(function () { loaded = true; });
|
||||||
|
|
||||||
if (select) {
|
var query = {
|
||||||
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" +
|
|
||||||
querystring.stringify({
|
|
||||||
left: left,
|
left: left,
|
||||||
top: top,
|
top: top,
|
||||||
right: right,
|
right: right,
|
||||||
bottom: bottom,
|
bottom: bottom,
|
||||||
select: select
|
select: select
|
||||||
}));
|
};
|
||||||
} else {
|
|
||||||
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" + querystring.stringify({
|
if (select) query.select = select;
|
||||||
left: left,
|
$("#linkloader").attr("src", "http://127.0.0.1:8111/load_and_zoom?" +
|
||||||
top: top,
|
querystring.stringify(query));
|
||||||
right: right,
|
|
||||||
bottom: bottom
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
if (!loaded) alert(I18n.t('site.index.remote_failed'));
|
if (!loaded) alert(I18n.t('site.index.remote_failed'));
|
||||||
|
|
|
@ -29,7 +29,7 @@ $(document).ready(function () {
|
||||||
layerCode: "M",
|
layerCode: "M",
|
||||||
name: I18n.t("javascripts.map.base.standard")
|
name: I18n.t("javascripts.map.base.standard")
|
||||||
}, {
|
}, {
|
||||||
layer: new L.OSM.CycleMap( {
|
layer: new L.OSM.CycleMap({
|
||||||
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
|
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
|
||||||
}),
|
}),
|
||||||
keyid: "cyclemap",
|
keyid: "cyclemap",
|
||||||
|
|
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;
|
var objectLoader;
|
||||||
|
|
||||||
function getUserIcon(url) {
|
function getUserIcon(url) {
|
||||||
|
@ -28,13 +13,13 @@ function getUserIcon(url) {
|
||||||
|
|
||||||
function addObjectToMap(object, map, options) {
|
function addObjectToMap(object, map, options) {
|
||||||
if (objectLoader) objectLoader.abort();
|
if (objectLoader) objectLoader.abort();
|
||||||
if (objectLayer) map.removeLayer(objectLayer);
|
if (map.objectLayer) map.removeLayer(map.objectLayer);
|
||||||
|
|
||||||
objectLoader = $.ajax({
|
objectLoader = $.ajax({
|
||||||
url: OSM.apiUrl(object),
|
url: OSM.apiUrl(object),
|
||||||
dataType: "xml",
|
dataType: "xml",
|
||||||
success: function (xml) {
|
success: function (xml) {
|
||||||
objectLayer = new L.OSM.DataLayer(null, {
|
map.objectLayer = new L.OSM.DataLayer(null, {
|
||||||
styles: {
|
styles: {
|
||||||
node: options.style,
|
node: options.style,
|
||||||
way: 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") {
|
if (object.type === "node") {
|
||||||
return true;
|
return true;
|
||||||
} else if (object.type === "relation") {
|
} 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.zoom) map.fitBounds(map.objectLayer.getBounds());
|
||||||
if (options.callback) options.callback(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