--- /dev/null
+//= require leaflet
+//= require leaflet.osm
+
+window.onload = function () {
+ var query = (window.location.search || '?').substr(1),
+ args = {};
+
+ query.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g, function(match, key, value) {
+ value = value.split(",");
+ if (value.length == 1)
+ value = value[0];
+ args[key] = value;
+ });
+
+ var map = L.map("map");
+ map.attributionControl.setPrefix('');
+
+ if (!args.layer || args.layer == "mapnik" || args.layer == "osmarender") {
+ new L.OSM.Mapnik().addTo(map);
+ } else if (args.layer == "cyclemap" || args.layer == "cycle map") {
+ new L.OSM.CycleMap().addTo(map);
+ } else if (args.layer == "transportmap") {
+ new L.OSM.TransportMap().addTo(map);
+ } else if (args.layer == "mapquest") {
+ new L.OSM.MapQuestOpen().addTo(map);
+ }
+
+ if (args.marker) {
+ L.marker(args.marker).addTo(map);
+ }
+
+ if (args.bbox) {
+ map.fitBounds([L.latLng(args.bbox[1], args.bbox[0]),
+ L.latLng(args.bbox[3], args.bbox[2])])
+ } else {
+ map.fitWorld();
+ }
+};
--- /dev/null
+/*
+ *= require leaflet
+ */
+
+html {
+ width: 100%;
+ height: 100%;
+}
+
+body {
+ width: 100%;
+ height: 100%;
+ margin: 0px;
+}
+
+#map {
+ width: 100%;
+ height: 100%;
+}
+
+.leaflet-control-zoom-in {
+ background-image: image-url("images/zoom-in.png");
+}
+
+.leaflet-control-zoom-out {
+ background-image: image-url("images/zoom-out.png");
+}
before_filter :authorize_web
before_filter :set_locale
+ caches_page :embed
+
def start
end
redirect_to "http://parent.tile.openstreetmap.org/cgi-bin/export?bbox=#{bbox}&scale=#{scale}&format=#{format}"
end
end
+
+ def embed
+ end
end
--- /dev/null
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8">
+ <title>OpenStreetMap Embedded</title>
+ <%= stylesheet_link_tag "embed", :media=> "screen" %>
+ <!--[if IE]>
+ <%= stylesheet_link_tag "leaflet.ie", :media=> "screen" %>
+ <![endif]-->
+ <%= javascript_include_tag "embed" %>
+ </head>
+ <body>
+ <div id="map"></div>
+ </body>
+</html>
config.assets.precompile += %w( large-rtl.css small-rtl.css print-rtl.css )
config.assets.precompile += %w( browse.css theme/openstreetmap/style.css )
config.assets.precompile += %w( leaflet-all.css leaflet.ie.css )
+ config.assets.precompile += %w( embed.js embed.css )
# Disable delivery errors, bad email addresses will be ignored
# config.action_mailer.raise_delivery_errors = false
# export
match '/export/start' => 'export#start', :via => :get
match '/export/finish' => 'export#finish', :via => :post
+ match '/export/embed' => 'export#embed', :via => :get
# messages
match '/user/:display_name/inbox' => 'message#inbox', :via => :get, :as => "inbox"
+++ /dev/null
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta charset="utf-8">
- <title>OpenStreetMap Embedded</title>
- <style type="text/css">
- html {
- width: 100%;
- height: 100%;
- }
- body {
- width: 100%;
- height: 100%;
- margin: 0px;
- }
- #map {
- width: 100%;
- height: 100%;
- }
- </style>
- <link href="/assets/leaflet.css" media="screen" rel="stylesheet" type="text/css">
- <!--[if IE]>
- <link href="/assets/leaflet.ie.css" media="screen" rel="stylesheet" type="text/css" />
- <![endif]-->
- <script src="/assets/leaflet.js"></script>
- <script src="/assets/leaflet.osm.js"></script>
- </head>
-
- <body>
- <div id="map"></div>
- <script>
- var query = (window.location.search || '?').substr(1),
- args = {};
-
- query.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g, function(match, key, value) {
- value = value.split(",");
- if (value.length == 1)
- value = value[0];
- args[key] = value;
- });
-
- var map = L.map("map");
- map.attributionControl.setPrefix('');
-
- if (!args.layer || args.layer == "mapnik" || args.layer == "osmarender") {
- new L.OSM.Mapnik().addTo(map);
- } else if (args.layer == "cyclemap" || args.layer == "cycle map") {
- new L.OSM.CycleMap().addTo(map);
- } else if (args.layer == "transportmap") {
- new L.OSM.TransportMap().addTo(map);
- } else if (args.layer == "mapquest") {
- new L.OSM.MapQuestOpen().addTo(map);
- }
-
- if (args.marker) {
- L.marker(args.marker).addTo(map);
- }
-
- if (args.bbox) {
- map.fitBounds([L.latLng(args.bbox[1], args.bbox[0]),
- L.latLng(args.bbox[3], args.bbox[2])])
- } else {
- map.fitWorld();
- }
- </script>
- </body>
-</html>
{ :path => "/export/finish", :method => :post },
{ :controller => "export", :action => "finish" }
)
+ assert_routing(
+ { :path => "/export/embed", :method => :get },
+ { :controller => "export", :action => "embed" }
+ )
end
def test_start