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; }
コメントを残す