Yahoo!地図版ルート地図

表示例

ページ内に固定サイズの地図を表示する「ページ内表示」と、リンクをクリックすると別のページが開いて、ページ全面に地図を表示する「別ページ表示」の二つの方法を説明します。

いずれの方法でも、マウス左ボタンを用いて地図のスクロール、マウスホイールや地図左上のボタンにより表示縮尺の変更ができます。GPSデータのアイコンをクリックすると、説明がポップアップします。また、地図右上のボタンで(市街地の表示に適した)地図や写真に切り替えることができます。

別ページ表示では、ページのサイズを変えると地図の表示領域の大きさも追従して変化します。また、GPSデータの表示のON/OFFや印刷等の機能を呼び出すメニューがついています。

ページ内表示
別ページ表示 ルート地図

設置方法

準備

まず、Yahoo!デベロッパーネットワークにアクセスして、アプリケーションIDを発行する必要があります。発行は無料です。以下では、発行されたアプリケーションIDをAPPIDと表記します。

次に、ダウンロードのページから、gpsweb-X.X.zip(X.Xはバージョン番号)の最新版をダウンロードし、適当な場所で展開して下さい。以降の説明で用いるファイル一式が入っています。

その他、ご自身独自のルート地図を作成する際には、地図に上乗せするGPSデータをKML形式で用意する必要があります。

ページ内表示

例として、サイト内に次のようなディレクトリ構成で設置したymap_ex1.htmlにルート地図を表示する場合を説明します。リンクをクリックすると、当該ページを閲覧できます(ブラウザの戻るボタンで戻って下さい)。この方法では、1ページに表示できるYahoo!地図版ルート地図は一つに制限されます。

ディレクトリ構成例
public_html / index.html(トップページ)
	|
	+--js / ymap.js
	+--example / Mt_Hayama.kml
	+--ymap_ex1.html

次にymap_ex1.htmlの内容を示します。赤字はルート地図の表示のために追加した部分、緑字は設定する必要があるパラメータを示します。

ymap_ex1.html
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Yahoo!地図版ルート地図</title>
<script type="text/javascript" src="https://map.yahooapis.jp/js/V1/jsapi?appid=APPID"></script>
<script type="text/javascript" src="js/ymap.js"></script>
<script type="text/javascript">//<![CDATA[
window.onload = function() {
	init_ymap({
		div: 'map_yahoo',
		lng: 140.672862, lat: 37.864291, zoom: 16,
		url: 'https://anineco.nyanta.jp/gpx2jsgi/example/Mt_Hayama.kml'
	});
};
//]]></script>
</head>
<body>
<div id="map_yahoo" style="width: 640px; height: 480px;"></div>
</body>
</html>

各パラメータの意味は次のとおりです。

パラメータ名値の例説明
appidAPPID取得したアプリケーションID
divmap_yahoo地図を設置するdiv要素のid
lng140.672862表示領域の中心座標の経度(世界測地系、単位:度)
lat37.864291    〃     経度
zoom15ズームレベル
urlhttps://anineco.nyanta.jp/gpx2jsgi/example/Mt_Hayama.kmlKMLファイルのURL
idmap_yahoodivパラメータと同じ識別名
width640px表示領域の横幅
height480px  〃  高さ

ymap_ex1.htmlは、Mt_Hayama.kmlの他に、次の2つのファイルを読み込んでいます。

URL説明
https://map.yahooapis.jp/js/V1/jsapi?appid=APPIDYahoo! JavaScriptマップAPI
js/ymap.js上記APIを呼び出すJavaScriptファイル

通常、これらを変更する必要はありませんが、1ページに複数のYahoo!地図版ルート地図を表示する場合や、他のJavaScriptライブラリを同時に利用している場合、Yahoo!地図の機能をもっと活用したい場合には、ymap.jsの内容を理解して変更する必要があります(HTML+CSS+JavaScriptの知識がある人向け)。

なお、サイトに公開する場合には、適宜クレジットの表示を加えて下さい。

別ページ表示

例として、サイト内に次のようなディレクトリ構成で設置したymap_ex2.htmlにルート地図を表示する場合を説明します。リンクをクリックすると、当該ページを閲覧できます(ブラウザの戻るボタンで戻って下さい)。当該ページ内の「ルート地図」のリンクをクリックすると、別の窓が開いてルート地図を表示します。この方法では、1ページに設置できるルート地図の数は制限されません(ただし、同時に開けるルート地図は一つにしています)。

ディレクトリ構成例
public_html / index.html(トップページ)
	|
	+--yahoomap.html
	+--js / routemap.js
	+--example / Mt_Hayama.kml
	+--ymap_ex2.html

yahoomap.htmlの中のAPPIDと基準URL(下記の緑字の部分)は、設置したサイトに合わせて変更して下さい。

yahoomap.html(抜粋)
<script type="text/javascript" src="https://map.yahooapis.jp/js/V1/jsapi?appid=APPID"></script>
<script type="text/javascript">//<![CDATA[
window.onload = function() {
	var baseurl = 'https://anineco.github.io/gpx2jsgi/'; // 基準URL

次にymap_ex2.htmlの内容を示します。赤字はルート地図の表示のために追加した部分、緑字は設定する必要があるパラメータを示します。パラメータの意味は、ページ内表示の場合と同じです。なお、パラメータurlに相対URLを指定した場合は、基準URLからの相対URLとなります。4つのパラメータはいずれも必須で、省略できません。

ymap_ex2.html
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<title>Yahoo!地図版ルート地図</title>
<script type="text/javascript" src="js/routemap.js"></script>
</head>
<body>
<p><a href="yahoomap.html?lat=37.864291&amp;lng=140.672862&amp;zoom=16&amp;url=example/Mt_Hayama.kml"
 onclick="return routemap(this.href)">ルート地図</a></p>
</body>
</html>

地図の表示領域の大きさを変更したい場合は、routemap.js内のパラメータを変更します。

routemap.js
function routemap(url) {
	window.open(url,'ROUTEMAP','width=640,height=510,resizable=yes');
	return false;
}

パラメータheightには、表示領域の高さ+30(ピクセル)の値を指定します。


Copyright © 2008 - 2014 あにねこ電脳覚書