Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,208)  
HandBrake Japanese Language Version  (3,353)  
CrystalDiskInfo  (1,743)  
CotEditor  (1,120)  
CrystalDiskMark  (866)  
Boookends  (788)  
SMPlayer  (642)  
えこでこツール  (599)  
Tera Term  (595)  
10  FFFTP  (579)  
11  Cabos  (530)  
12  BathyScaphe  (494)  
13  ffdshow  (481)  
14  MergeDoc  (464)  
15  ギコナビ  (438)  
More >>

最近ブックマークされた記事

PHPサイトにGoogleマップを追加する

2008年08月05日 10:41 Ben-Martin(2008年8月1日(金)) 1 2 3

 これらのメソッドの使用例として、さきほどのサンプルにあったaddMarkerByAddressブロックに以下のコードを追加してみよう。なお、2つの地点を結ぶ線は直線として描かれる。この点が気に入らないという人もいるだろう。通行可能な経路を線で示すには、以下の例にあるように、緯度と経度を指定して各線分を手作業でつなぎ合わせていく必要がある。コードの最後(省略記号の後ろの部分)では、簡単なジオコード検索を実行し、その結果をブラウザに表示している。このサンプルコードを実行したときのスクリーンショットも載せておく。

...
$map->addMarkerByAddress('eiffel tower, paris','Eiffel Tower','<b>One fine Sunday...</b>');
$map->addMarkerByAddress('louvre, paris','Louvre','<b>One fine Monday ;-p~~</b>');

$map->addPolyLineByAddress(
        'eiffel tower, paris',
        'louvre, paris',
        '#ff0000',5,75 );

$color = '#0000FF';
$weight = 3;
$opacity = 90;

$map->addPolyLineByCoords( 2.334075,48.861351, 2.321080,48.865450, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.321080,48.865450, 2.319029,48.864797, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.319029,48.864797, 2.313604,48.864712, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.313604,48.864712, 2.313335,48.862827, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.313335,48.862827, 2.309883,48.862600, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.309883,48.862600, 2.309128,48.862751, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.309128,48.862751, 2.302311,48.862639, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.302311,48.862639, 2.300746,48.859824, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.300746,48.859824, 2.297080,48.859055, $color, $weight, $opacity );
$map->addPolyLineByCoords( 2.297080,48.859055, 2.294449,48.858247, $color, $weight, $opacity );

....

<?php
        $gc = $map->geoGetCoords('eiffel tower, paris');
        $lat = $gc['lat']; $long = $gc['lon'];
        echo "Eiffel Tower lat: $lat long: $long";

?>
</body>
</html>

gmap2_thumb.png
サンプルコードによる表示マップ

 厄介なのは、手作業で2つの地点を線でつないでいく際に、線分ごとにaddPolyLineByCoordsを使わないといけない点だ。addPolyLineByCoordsの呼び出しを繰り返すと、終点として指定した座標が次の呼び出しの始点と重複して煩わしいので、各地点の緯度と経度の座標を配列として渡せたほうがよい。

 GoogleMapAPIはLGPLの元で配布されており、自由に利用できる。わかりやすいプログラマ向けドキュメントが用意されており、またSmartyテンプレートとも統合されているのでWebページのデザインと機能をきちんと分けておくことができる。

Ben Martinは10年以上もファイルシステムに携わっている。博士号を持ち、現在はlibferris、各種ファイルシステム、検索ソリューションを中心としたコンサルティングサービスを手がけている。

Linux.com 原文

関連トピック

最終更新:2008年10月05日 17:07