#!/usr/bin/env ruby
#coding:utf-8
require 'cgi'
c = CGI.new(:accept_charset => "UTF-8")
#lon = c["lon"].to_f
#lat = c["lat"].to_f
if ARGV[1] != nil
lon = ARGV[1].to_f
lat = ARGV[0].to_f
else
lat = 38.91525
lon = 139.83450
end
print("Content-type: text/html; charset=UTF-8\n\n")
printf(<<_EOS_,lat,lon)
<html>
<head>
<title>Simple OSM GPX Track</title>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript">
lat = %f
lon = %f
var zoom=15
var map;
function init() {
map = new OpenLayers.Map ("map", {
controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.Attribution()
],
maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
maxResolution: 156543.0399,
numZoomLevels: 6,
units: \'m\',
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326")
} );
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
map.addLayer(layerMapnik);
layerMarkers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(layerMarkers);
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
map.setCenter(lonLat, zoom);
var size = new OpenLayers.Size(21, 25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon(\'http://www.openstreetmap.org/openlayers/img/marker.png\',size,offset);
layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
}
</script>
<meta http-equiv="refresh" content="20;redirect.html">
</head>
<body onload="init();">
_EOS_
print"<div style=\"width:90\%\; height:90\%\" id=\"map\"></div>
</body>
</html>
"