From: John Firebaugh Date: Fri, 5 Oct 2012 02:09:56 +0000 (-0700) Subject: Merge globals.js.erb and params.js X-Git-Tag: live~5272 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/c3d1123965b2d9bc34299c3a6c64d186c62c0ed2 Merge globals.js.erb and params.js --- diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 913540730..785862ccc 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -6,8 +6,7 @@ //= require augment //= require openlayers //= require i18n/translations -//= require globals -//= require params +//= require osm //= require piwik //= require map //= require menu diff --git a/app/assets/javascripts/globals.js.erb b/app/assets/javascripts/globals.js.erb deleted file mode 100644 index 3c3bd92a7..000000000 --- a/app/assets/javascripts/globals.js.erb +++ /dev/null @@ -1,9 +0,0 @@ -OSM = { -<% if defined?(PIWIK_LOCATION) and defined?(PIWIK_SITE) %> - PIWIK_LOCATION: <%= PIWIK_LOCATION.to_json %>, - PIWIK_SITE: <%= PIWIK_SITE.to_json %>, -<% end %> - MAX_REQUEST_AREA: <%= MAX_REQUEST_AREA.to_json %>, - SERVER_URL: <%= SERVER_URL.to_json %>, - API_VERSION: <%= API_VERSION.to_json %> -}; diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb new file mode 100644 index 000000000..3c3378f98 --- /dev/null +++ b/app/assets/javascripts/osm.js.erb @@ -0,0 +1,111 @@ +OSM = { +<% if defined?(PIWIK_LOCATION) and defined?(PIWIK_SITE) %> + PIWIK_LOCATION: <%= PIWIK_LOCATION.to_json %>, + PIWIK_SITE: <%= PIWIK_SITE.to_json %>, +<% end %> + + MAX_REQUEST_AREA: <%= MAX_REQUEST_AREA.to_json %>, + SERVER_URL: <%= SERVER_URL.to_json %>, + API_VERSION: <%= API_VERSION.to_json %>, + + mapParams: function (search) { + var params = {}, mapParams = {}, loc; + + search = (search || window.location.search).replace('?', '').split('&'); + + for (var i = 0; i < search.length; ++i) { + var pair = search[i], + j = pair.indexOf('='), + key = pair.slice(0, j), + val = pair.slice(++j); + params[key] = decodeURIComponent(val); + } + + if (params.mlon && params.mlat) { + mapParams.marker = true; + mapParams.mlon = parseFloat(params.mlon); + mapParams.mlat = parseFloat(params.mlat); + } + + if (params.layers) { + mapParams.layers = params.layers; + } + + if (params.node || params.way || params.relation) { + mapParams.object = true; + mapParams.object_zoom = true; + + if (params.node) { + mapParams.object_type = 'node'; + mapParams.object_id = parseInt(params.node); + } else if (params.way) { + mapParams.object_type = 'way'; + mapParams.object_id = parseInt(params.way); + } else if (params.relation) { + mapParams.object_type = 'relation'; + mapParams.object_id = parseInt(params.relation); + } + } + + // Decide on a lat lon to initialise the map with. Various ways of doing this + if (params.bbox) { + var bbox = params.bbox.split(","); + mapParams.bbox = true; + mapParams.minlon = parseFloat(bbox[0]); + mapParams.minlat = parseFloat(bbox[1]); + mapParams.maxlon = parseFloat(bbox[2]); + mapParams.maxlat = parseFloat(bbox[3]); + mapParams.object_zoom = false; + } else if (params.minlon && params.minlat && params.maxlon && params.maxlat) { + mapParams.bbox = true; + mapParams.minlon = parseFloat(params.minlon); + mapParams.minlat = parseFloat(params.minlat); + mapParams.maxlon = parseFloat(params.maxlon); + mapParams.maxlat = parseFloat(params.maxlat); + mapParams.object_zoom = false; + } else if (params.lon && params.lat) { + mapParams.lon = parseFloat(params.lon); + mapParams.lat = parseFloat(params.lat); + mapParams.zoom = parseInt(params.zoom || 5); + mapParams.object_zoom = false; + } else if (params.mlon && params.mlat) { + mapParams.lon = parseFloat(params.mlon); + mapParams.lat = parseFloat(params.mlat); + mapParams.zoom = parseInt(params.zoom || 12); + mapParams.object_zoom = false; + } else if (loc = $.cookie('_osm_location')) { + loc = loc.split("|"); + mapParams.lon = parseFloat(loc[0]); + mapParams.lat = parseFloat(loc[1]); + mapParams.zoom = parseInt(loc[2]); + mapParams.layers = loc[3]; + } else if (OSM.home) { + mapParams.lon = OSM.home.lon; + mapParams.lat = OSM.home.lat; + mapParams.zoom = 10; + } else if (OSM.location) { + mapParams.bbox = true; + mapParams.minlon = OSM.location.minlon; + mapParams.minlat = OSM.location.minlat; + mapParams.maxlon = OSM.location.maxlon; + mapParams.maxlat = OSM.location.maxlat; + } else { + mapParams.lon = -0.1; + mapParams.lat = 51.5; + mapParams.zoom = parseInt(params.zoom || 5); + } + + if (mapParams.bbox) { + mapParams.box = params.box == "yes"; + mapParams.lon = (mapParams.minlon + mapParams.maxlon) / 2; + mapParams.lat = (mapParams.minlat + mapParams.maxlat) / 2; + } + + var scale = parseFloat(params.scale); + if (scale > 0) { + mapParams.zoom = Math.log(360.0 / (scale * 512.0)) / Math.log(2.0); + } + + return mapParams; + } +}; diff --git a/app/assets/javascripts/params.js b/app/assets/javascripts/params.js deleted file mode 100644 index 5373625dc..000000000 --- a/app/assets/javascripts/params.js +++ /dev/null @@ -1,100 +0,0 @@ -OSM.mapParams = function (search) { - var params = {}, mapParams = {}, loc; - - search = (search || window.location.search).replace('?', '').split('&'); - - for (var i = 0; i < search.length; ++i) { - var pair = search[i], - j = pair.indexOf('='), - key = pair.slice(0, j), - val = pair.slice(++j); - params[key] = decodeURIComponent(val); - } - - if (params.mlon && params.mlat) { - mapParams.marker = true; - mapParams.mlon = parseFloat(params.mlon); - mapParams.mlat = parseFloat(params.mlat); - } - - if (params.layers) { - mapParams.layers = params.layers; - } - - if (params.node || params.way || params.relation) { - mapParams.object = true; - mapParams.object_zoom = true; - - if (params.node) { - mapParams.object_type = 'node'; - mapParams.object_id = parseInt(params.node); - } else if (params.way) { - mapParams.object_type = 'way'; - mapParams.object_id = parseInt(params.way); - } else if (params.relation) { - mapParams.object_type = 'relation'; - mapParams.object_id = parseInt(params.relation); - } - } - - // Decide on a lat lon to initialise the map with. Various ways of doing this - if (params.bbox) { - var bbox = params.bbox.split(","); - mapParams.bbox = true; - mapParams.minlon = parseFloat(bbox[0]); - mapParams.minlat = parseFloat(bbox[1]); - mapParams.maxlon = parseFloat(bbox[2]); - mapParams.maxlat = parseFloat(bbox[3]); - mapParams.object_zoom = false; - } else if (params.minlon && params.minlat && params.maxlon && params.maxlat) { - mapParams.bbox = true; - mapParams.minlon = parseFloat(params.minlon); - mapParams.minlat = parseFloat(params.minlat); - mapParams.maxlon = parseFloat(params.maxlon); - mapParams.maxlat = parseFloat(params.maxlat); - mapParams.object_zoom = false; - } else if (params.lon && params.lat) { - mapParams.lon = parseFloat(params.lon); - mapParams.lat = parseFloat(params.lat); - mapParams.zoom = parseInt(params.zoom || 5); - mapParams.object_zoom = false; - } else if (params.mlon && params.mlat) { - mapParams.lon = parseFloat(params.mlon); - mapParams.lat = parseFloat(params.mlat); - mapParams.zoom = parseInt(params.zoom || 12); - mapParams.object_zoom = false; - } else if (loc = $.cookie('_osm_location')) { - loc = loc.split("|"); - mapParams.lon = parseFloat(loc[0]); - mapParams.lat = parseFloat(loc[1]); - mapParams.zoom = parseInt(loc[2]); - mapParams.layers = loc[3]; - } else if (OSM.home) { - mapParams.lon = OSM.home.lon; - mapParams.lat = OSM.home.lat; - mapParams.zoom = 10; - } else if (OSM.location) { - mapParams.bbox = true; - mapParams.minlon = OSM.location.minlon; - mapParams.minlat = OSM.location.minlat; - mapParams.maxlon = OSM.location.maxlon; - mapParams.maxlat = OSM.location.maxlat; - } else { - mapParams.lon = -0.1; - mapParams.lat = 51.5; - mapParams.zoom = parseInt(params.zoom || 5); - } - - if (mapParams.bbox) { - mapParams.box = params.box == "yes"; - mapParams.lon = (mapParams.minlon + mapParams.maxlon) / 2; - mapParams.lat = (mapParams.minlat + mapParams.maxlat) / 2; - } - - var scale = parseFloat(params.scale); - if (scale > 0) { - mapParams.zoom = Math.log(360.0 / (scale * 512.0)) / Math.log(2.0); - } - - return mapParams; -};