« Google Mapsを使ってみよう1 | トップページ | PHPのShift_JIS文字化け対策1 »

2005年11月08日

Google Mapsを使ってみよう2

今回は前回に引き続きGoogle Maps APIの使い方を説明します。
前回では単に指定した場所の地図を表示するだけでしたが、今回は指定した位置にマークを入れたり、指定した2つの場所の間に線を引いたりしてみます。

Google ローカル
Google Maps API(英語)
Google Mapドキュメント(英語)

基本的な記述方法は以前と同じ物を使用します。宣言文等に関しては前回の「Google Mapsを使ってみよう1」のページをご覧下さい。

まずは、Google Mapsの中にマークを挿入してます。
書き方は簡単です。以下の2行を追加するだけです。

var marker = new GMarker(new GPoint(経度, 緯度));
map.addOverlay(marker);

Gmarkerクラスは、Google Mapsの1つのポイントにアイコンを表示させる為に使用するクラスです。
上記の例では、new GMarker(地図の位置) コンストラクタを呼び出してmarker変数に格納しています。
GMarker(point, icon)
point:GPointオブジェクト
icon:Iconオブジェクト(指定なし:デフォルトGoogle Maps Icon)

Markerの位置が決まったら、GMapクラスのaddOverlayメソッドを使って、GMarkerをGoogle Mapsに挿入します。
addOverlayメソッドは、Google Mapsにマークや線などを追加することが出来ます。
addOverlay(overlay)
overlay:GMarkerオブジェクトやGPolylineオブジェクト等

GMarkerクラスのの説明で、Iconとありましたがマークに自作のIconを使用することが出来ます。
自作のアイコンを使用したい場合は、下記のようにGIconオブジェクトを作成します。

var icon = new GIcon();
icon.image = "http://www.s-memo.net/sample/google_map/icon.gif";
icon.iconSize = new GSize(12, 38);
icon.iconAnchor = new GPoint(0, 38);

GMarkerの第2引数にGIconオブジェクトを指定します。
var marker = new GMarker(new GPoint(経度, 緯度), icon);

GIconクラスの各メソッドの説明は以下の通りです。
尚、サイズは全てピクセル指定です。
icon.image = "使用する画像のURL";
icon.iconSize = new GSize(画像の横幅, 画像の縦幅);
icon.iconAnchor = new GPoint(画像を表示する横位置, 画像を表示する縦位置);

iconAnchorは、画像の表示位置から何ピクセルずらすかを指定します。緯度や経度ではないので注意して下さい。
自作画像でマークを設置する場合、最低でも上記の3つを指定しないとエラーが発生しますので注意して下さい。
今までのソースをまとめると以下の通りです。
<!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" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
    v\:* {
      behavior:url(#default#VML);
    }
    </style>
    <script src="http://maps.google.com/maps?file=api&v=1&key=キー指定" type="text/javascript"></script>
  </head>
  <body>
    <div id="map" style="width: 600px; height: 400px"></div>
    <div id="message"></div>
    <script type="text/javascript">
    
    var map = new GMap(document.getElementById("map"));

    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.centerAndZoom(new GPoint(139.7028136253357,35.68785351531429), 3);

    var polyline = new GPolyline([new GPoint(139.7028136253357,35.68785351531429),new GPoint(139.70330715179443, 35.69170502716)],"#ff0000", 8, 1);
    map.addOverlay(polyline);

    </script>
    
  </body>
</html>


自作のマークをGoogle Mapsの中に挿入するサンプルはこちらから。

次に、Google Maps上に線を引いてみます。
書き方はこちらも簡単です。以下の2行を追加するだけで線を引けます。

var polyline = new GPolyline([new GPoint(経度, 緯度),new GPoint(経度, 緯度)],"#ff0000", 8, 1);
map.addOverlay(polyline);

GPolylineクラスを変数に格納した後に、GMapクラスのaddOverlayメソッドを使ってGoogle Mapsに配置しています。
GPolylineクラスはその名の通り、Google Maps上に線を引く際に使用するクラスです。
各引数の説明は以下の通りです。
GPolyline(points, color, weight, opacity)
points:GPointオブジェクト([]で囲むことで複数指定可)
color:線の色・RGBカラー(指定なし:青色)
weight:線の太さ・ピクセル指定(指定なし:3ぐらい?)
opacity:透明度・0から1の間で指定(指定なし:0.5)

位置の指定は[]で囲ってカンマ区切りにすることで複数の場所を指定出来ます。
透明度については、0に近いほど薄くなり、1に近い程濃くなっていきます。

今までのソースをまとめると以下の通りです。

<!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" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
    v\:* {
      behavior:url(#default#VML);
    }
    </style>
    <script src="http://maps.google.com/maps?file=api&v=1&key=キー指定" type="text/javascript"></script>
  </head>
  <body>
    <div id="map" style="width: 600px; height: 400px"></div>
    <div id="message"></div>
    <script type="text/javascript">
    
    var map = new GMap(document.getElementById("map"));

    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.centerAndZoom(new GPoint(139.7028136253357,35.68785351531429), 3);

    var polyline = new GPolyline([new GPoint(139.7028136253357,35.68785351531429),new GPoint(139.70330715179443, 35.69170502716)],"#ff0000", 8, 1);
    map.addOverlay(polyline);

    </script>
    
  </body>
</html>


Google Mapsに線を引くサンプルはこちらから。


今回は、Google Mapsにマークを挿入する方法とアイコンを設置する方法、更にGoogle Mapsの中に線を引く方法をご紹介しました。
これをプログラムと連携することで色々なことが出来そうです。

トラックバック

このエントリーのトラックバックURL:
http://www.s-memo.net/mt/mt-tb.cgi/10

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)