[OSM-ja] http://www.openstreetmap.jp/ について

Hiroshi Miura miurahr @ linux.com
2010年 8月 1日 (日) 06:50:05 BST


三浦です。

みなさんありがとうございます。
まずは、すすめていただけますでしょうか。

On 2010年07月29日 13:08, S.Higashi wrote:
> 東です。
>
> 三浦さんに質問ですが
> 1.DrupalのDBはPostgreSQLだったかと思いますがMySQLに変えた場合
> 支障がありますか?
>   

ありません。

> 2.地図(http://osm.jp/bigmapにあったもの)のスクリプトはどこかにありますでしょうか。
>   

スクリプトは以下のとおり

<script src="/ol/OpenLayers.js"></script> <script
src="/ol/proj4js.js"></script><script
src="http://openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript">
var lon=139.376;
var lat=35.801;
var zoom=7;
var map;

function lonLatToMercator(ll) {
var lon = ll.lon * 20037508.34 / 180;
var lat = Math.log (Math.tan ((90 + ll.lat) * Math.PI / 360)) / (Math.PI
/ 180);
lat = lat * 20037508.34 / 180;
return new OpenLayers.LonLat(lon, lat);
}

function getArgs(url) {
var args;
var querystart = url.indexOf("?");

if (querystart >= 0) {
args = new Object();
var querystring = url.substring(querystart + 1);
var queryitems = querystring.split("&");

for (var i = 0; i < queryitems.length; i++) {
if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
args[unescape(match[1])] = unescape(match[2]);
} else {
args[unescape(queryitems[i])] = null
}
}
}

return args;
}

function setArgs(url, args) {
var queryitems = new Array();

for (arg in args){
if (args[arg] == null) {
queryitems.push(escape(arg));
} else {
queryitems.push(escape(arg) + "=" + escape(args[arg]));
}
}

return url.replace(/\?.*$/, "") + "?" + queryitems.join("&");
}

function resizeMap() {
var centre = map.getCenter();
var zoom = map.getZoom();
var sidebar_width = 30;
var sidebar_offset = 0;
if(document.getElementById("sidebar-left")){
// sidebar_width = document.getElementById("sidebar-left").offsetWidth;
// document.getElementById("map").style.left = "-200px";
// sidebar_offset = 20;
}
var winHeight;
if(typeof(window.innerHeight) == 'number'){
//Non-IE
winHeight = window.innerHeight;
winWidth = window.innerWidth;
}else if(document.documentElement && document.documentElement.clientHeight){
//IE 6+ in 'standards compliant mode'
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}else if(document.body && document.body.clientHeight){
//IE 4 compatible
winHeight = document.body.clientHeight;
winWidth = document.body.clientWidth;
}
boxWidth = Math.min(winWidth - sidebar_width - sidebar_offset - 40,
document.getElementById("center").offsetWidth - sidebar_width -
sidebar_offset - 30);
if(document.all){
document.getElementById("map").style.paddingLeft = (sidebar_width+26) +
"px";
}else{
document.getElementById("map").style.marginLeft = (sidebar_width+26) + "px";
}
document.getElementById("map").style.width = boxWidth + "px";
document.getElementById("map").style.height = (winHeight - 100) + "px";
document.getElementById("vertical").style.height = (winHeight - 100) + "px";
document.getElementById("vertical").style.width = (boxWidth) + "px";
document.getElementById("licenseandlink").style.top = (winHeight - 155)
+ "px";

map.setCenter(centre, zoom);
}

window.onload=init;
window.onresize = resizeMap;

function init() {
document.getElementById("container").style.maxWidth="1900px";

if(document.getElementById("sidebar-left")){
document.getElementById("additionalLogin").style.display = "block";

document.getElementById("additionalLogin").innerHTML =
document.getElementById("sidebar-left").innerHTML;
document.getElementById("sidebar-left").innerHTML = "";
document.getElementById("sidebar-left").style.display = "none";
}
map = new OpenLayers.Map("map", {
controls:[ new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
// new OpenLayers.Control.Permalink(),
new OpenLayers.Control.Attribution()],
maxExtent: new
OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
maxResolution:156543.0399, units:'meters', projection:"EPSG:900913"} );
var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
var layerTah = new OpenLayers.Layer.OSM.Osmarender("Tiles @ Home");
map.addLayers([layerMapnik,layerTah]);
//map.addLayer(layerTah);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var args = getArgs(location.href);
if(args){
lon = args["lon"];
lat = args["lat"];
zoom = args["zoom"];
}
var lonLat = lonLatToMercator(new OpenLayers.LonLat(lon, lat));
map.setCenter (lonLat, zoom);

tabnode=document.getElementById("tabs-wrapper");
if(tabnode){
tabnode.innerHTML += '<ul class="tabs primary"><li ><a
href="http://www.openstreetmap.org/edit" id="potlatchlinkanchor"
target="_blank"><nobr>地図を編集</nobr></a></li>& lt;/ul>';
}

map.events.register("moveend", map, setLinks);
map.events.register("changelayer", map, setLinks);

setLinks();
resizeMap();
window.scrollBy(0,140);
}

function setLinks(){
setPermaLink();
setMapEditLink();
}

function setPermaLink(){
setAnchor("permalinkanchor");
}

function setMapEditLink(){
setAnchor("potlatchlinkanchor");
}

function setAnchor(anchorid){
var lonlat = map.getCenter();
var zoom = map.getZoom();
node = document.getElementById(anchorid);
if (node) {
var args = getArgs(node.href);
if(!args) args = new Object();
args["lat"] =
Math.atan(Math.exp((lonlat.lat*180/20037508.34)*Math.PI/180))*360/Math.PI-90;
args["lon"] = lonlat.lon * 180/20037508.34;
args["zoom"] = zoom;
node.href = setArgs(node.href, args);
}
}
</script>
<div id="vertical" style="border-style:solid; border-width:1px;
border-color:lightgrey;">
<div style="border-width:0;position:absolute; left:-20px" id="map"> </div>
<div id="licenseandlink" style="position: relative;"><span
style="font-size:60%; background-color:white;
z-index:1000;">OpenStreetMap - CC-BY-SA-2.0</span><br><span
id="permalink" style="z-index:1000;position:relative; top:-1px;"><a
href="/showmap_beta" id="permalinkanchor">Permalink</a></span></div>
</div>

<div id="additionalLogin" style="display: none;">
</div><!--end additionalLogin -->
</div>


--------------------------------------------------------------
Ovi Mail: Making email access easy
http://mail.ovi.com





Talk-ja メーリングリストの案内