-<%
-# Decide on a lat lon to initialise the map with
-if params['lon'] and params['lat']
- lon = h(params['lon'])
- lat = h(params['lat'])
- zoom = h(params['zoom'] || '5')
- layers = h(params['layers'])
-end
-%>
-<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
-<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
-<%= javascript_include_tag 'map.js' %>
-<td align="right">
- <% if big_map.instance_of? Changeset or big_map.visible %>
- <div id="big_map" style="right: 0; left: 0; bottom: 0; top: 0; position: absolute; border: solid 1px black">
- <div id="permalink">
- <a href="<%= url_for :controller => 'browse', :action => (big_map.class.to_s.downcase + '_map'), :id => big_map.id, :only_path => true %>" id="permalinkanchor"><%= t 'site.index.permalink' %></a><br/>
- </div>
- </div>
- <% else %>
- <%= t 'browse.map.deleted' %>
- <% end %>
-</td>
-<% if big_map.instance_of? Changeset or big_map.visible %>
- <script type="text/javascript">
- var big_map;
-
- OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
-
- /* A version of index.html.erb->updateLocation that doesn't set a cookie */
- function updateBigmapLocation() {
- var lonlat = getMapCenter();
- var zoom = big_map.getZoom();
- var layers = getMapLayers();
- var extents = getMapExtent();
- var expiry = new Date();
-
- updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top);
- }
-
- function init() {
- big_map = createMap("big_map", {
- controls: [
- new OpenLayers.Control.ArgParser(),
- new OpenLayers.Control.Attribution(),
- new OpenLayers.Control.LayerSwitcher(),
- new OpenLayers.Control.Navigation(),
- new OpenLayers.Control.PanZoomBar(),
- new OpenLayers.Control.ScaleLine()
- ]
- });
-
- <% if big_map.instance_of? Changeset %>
- var minlon = <%= big_map.min_lon / GeoRecord::SCALE.to_f %>;
- var minlat = <%= big_map.min_lat / GeoRecord::SCALE.to_f %>;
- var maxlon = <%= big_map.max_lon / GeoRecord::SCALE.to_f %>;
- var maxlat = <%= big_map.max_lat / GeoRecord::SCALE.to_f %>;
- var bbox = new OpenLayers.Bounds(minlon, minlat, maxlon, maxlat);
-
- <% if lat and lon and zoom %>
- var center = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
- var zoom = <%= zoom %>;
- <% else %>
- setMapExtent(bbox);
- <% end %>
- addBoxToMap(bbox);
-
- <% if !layers.nil? and !layers.empty? %>
- setMapLayers("<%= layers %>");
- <% end %>
-
- <% else %>
- var obj_type = "<%= big_map.class.name.downcase %>";
- var obj_id = <%= big_map.id %>;
- var url = "/api/<%= "#{API_VERSION}" %>/<%= big_map.class.name.downcase %>/<%= big_map.id %>";
-
- if (obj_type != "node") {
- url += "/full";
- }
-
- var osm_layer = new OpenLayers.Layer.GML("OSM", url, {
- format: OpenLayers.Format.OSM,
- projection: new OpenLayers.Projection("EPSG:4326")
- });
-
- osm_layer.events.register("loadend", osm_layer, function() {
- var extent = this.features[0].geometry.getBounds();
-
- for (var i = 1; i < this.features.length; i++) {
- extent.extend(this.features[i].geometry.getBounds());
- }
-
- <% if lat and lon and zoom %>
- var center = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
- var zoom = <%= zoom %>;
- <% else %>
- if (extent) {
- this.map.zoomToExtent(extent);
- } else {
- this.map.zoomToMaxExtent();
- }
- <% end %>
-
- var center = getMapCenter();
- });
-
- big_map.addLayer(osm_layer);
-
- osm_layer.loadGML();
- osm_layer.loaded = true;
- <% end %>
- big_map.events.register("moveend", big_map, updateBigmapLocation);
- big_map.events.register("changelayer", big_map, updateBigmapLocation);
- updateBigmapLocation();
- }
-
- window.onload = init;
- </script>
-<% end %>