Googleマップ with Yahoo!地図情報(β版)
Googleマップ上にYahoo!地図情報の地図を表示するという地図を作ってみました。
Googleマップをクリックすると、クリックされた地点のYahoo!地図を吹き出し内に表示します。そのYahoo!地図をクリックすれば、Yahoo!地図情報が開きます。
ただそれだけです。
※ 世界測地系と日本測地系のズレを修正するために、経度を12秒プラスし、緯度を12秒マイナスしています。
地図部分のソースコード
var map = new GMap(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.setMapType(G_MAP_TYPE);
map.centerAndZoom(new GPoint(139.705861,35.688341), 2);
GEvent.addListener(map, "click", function(overlay, point) {
map.clearOverlays();
var x = point.x;
var y = point.y;
var x1 = Math.floor(x);
var x2 = Math.floor((x - x1) * 60);
var x3 = (((x - x1) * 60) - x2) * 60;
x3 = my_round(x3) + 12;
if (x3 >= 60) {
x3 = x3 - 60;
x2 = x2 + 1;
}
if (x2 >= 60) {
x2 = x2 - 60;
x1 = x1 + 1;
}
var y1 = Math.floor(y);
var y2 = Math.floor((y - y1) * 60);
var y3 = (((y - y1) * 60) - y2) * 60;
y3 = my_round(y3) - 12;
if (y3 < 0) {
y3 = y3 + 60;
y2 = y2 - 1;
}
if (y2 < 0) {
y2 = y2 + 60;
y1 = y1 - 1;
}
var html = '<form target="_blank" method=get action="http://map.yahoo.co.jp/pl"><input type=hidden name="nl" value="'+y1+'.'+y2+'.'+y3+'"><input type=hidden name="el" value="'+x1+'.'+x2+'.'+x3+'"><input type=hidden name="la" value="1"><input type=hidden name="sc" value="2"><input type=hidden name="prem" value="0"><input type=image name="CE" src="http://image.map.yahoo.co.jp/ymap/mk_map?&width=300&height=300&la=1&scale=10000&no_part=0&nl='+y1+'/'+y2+'/'+y3+'&el='+x1+'/'+x2+'/'+x3+'" border=0 height=300 width=300 alt="Yahoo!地図情報"></form>';
var mk = new GMarker(point);
map.addOverlay(mk);
mk.openInfoWindowHtml(html);
});
function my_round(x) {
return Math.round(x * 1000 + 0.5) / 1000;
}
コメントを残す