スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

php google Map api Ver3.0について

Google Maps APIをPHPから使用することが出来るライブラリーが存在する。

php google Map api Ver3.0

説明ページは以下の通りである。
code.google.com/p/php-google-map-api/

APIリファレンスは以下の通り
www.phpinsider.com/php/code/GoogleMapAPI/

ただし、上記のリファレンスは、一つ前のバージョン(Ver.2.5)のものであるが
使用することは可能である。ただ、説明ページのサンプルを見ると
存在しないパラメータもある。

Google Maps APIの最新バージョン(Ver.3.0 2010.8.5現在)にも対応している。

本ライブラリーを評価してみた。
以下は、その内容である。

このライブラリーを使用するためには、MySQLとPEARが必要になる。
本説明では省略するが、使用前にそれらの環境を整えておくこと。
そして、上記URLのExternal linksのdownload sourcesから
以下の
ソースをダウンロードする。

 ・COPYING.lib(ライセンス関係)
 ・GoogleMaps.php(/src内)
 ・JSMin.php(/src内)

(1):以下のテーブルをMySQLのデータベース上に定義する。
  今回は、google_apiというデータベースを作成し、その中に作成した。

  CREATE TABLE GEOCODES (
          address varchar(255) NOT NULL default '',
          lon float default NULL,
          lat float default NULL,
          PRIMARY KEY  (address)
        );

  テーブルの定義については、MySQLのコマンドライン、または、phpmyadminからでもよい。

(2):ユーザ名を定義する。
  ユーザ:db_user パスワード:db_user
  grant select,insert,delete,update,create,drop,file,
  alter,index on *.* to dbuser identified by 'dbuser';

(3):ダウンロードしたソースを適当なフォルダに配置する。
  今回はphp_google_mapというフォルダに配置した。

(4):以下のコーディングを行った。
<?php
include_once("./php_google_map/GoogleMap.php");
include_once("./php_google_map/JSMin.php");

$MAP_OBJECT = new GoogleMapAPI();
$MAP_OBJECT->_minify_js = isset($_REQUEST["min"])?FALSE:TRUE;
$MAP_OBJECT->setDSN("mysql://dbuser:dbuser@localhost/google_api");
// 表示する位置を緯度、経度で指定
$MAP_OBJECT->addMarkerByCoords(139.35474067926407,35.317189053924544 ,"撮影会会場", "撮影会会場(湘南海浜公園)");
$MAP_OBJECT->addMarkerByCoords(139.35209333896637,35.32324464606347 ,"ミスコンテスト会場", "ミスコンテスト会場(平塚商工会議所)");

//$MAP_OBJECT->addMarkerByCoords(139.35474067926407,35.317189053924544);
// 地図の表示形式の初期値を指定
$MAP_OBJECT->setMapType('map');
// Street Viewを使用する。
$MAP_OBJECT->enableStreetViewControls();
// 地図大きさ指定(横幅)
$MAP_OBJECT->setWidth('500px');
// 地図大きさ指定(縦幅)
$MAP_OBJECT->setHeight('500px');
// ズームレベルの初期値を指定
$MAP_OBJECT->setZoomLevel(15);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- JavaScript展開 -->
<?=$MAP_OBJECT->getHeaderJS();?>
<?=$MAP_OBJECT->getMapJS();?>
<title>無題ドキュメント</title>
<link href="../css/common.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="main">
<?=$MAP_OBJECT->printOnLoad();?>
<?=$MAP_OBJECT->printMap();?>
<?=$MAP_OBJECT->printSidebar();?>
</div>
</body>
</html>

(5):上記のソースから、以下の評価を行った。
・表示する大きさを変えられるか?
 setWidth,setHeightで可能。
・印刷が出来るか?
 Googleマークをクリックし、印刷ボタンをクリックすることで可能。
 ただし、マーカーがなくなってしまう。
 プラウザの印刷機能を使用してもらうことでも代用可能。
 マーカーは印刷されるが、この場合、背景の印刷を有効にしてもらう必要がある。

 または、APIを使用せずに、GoogleMAPのURLにパラメータを受け渡すことにより、
 (http://imakoko.didit.jp/imakoko_html/memo/parameters_google.html)
 GoogleMapを表示し、印刷することにより、マーカー入りで印刷することは可能。

・地図表示を初期値と出来るか?
 setMapTypeで"map"を指定することで可能。
・ズームレベルの初期値を指定できるか?
 setZoomLevelで可能。数値は、ズームレベルの目盛りと比例するので、
 任意の値を指定。
・Googleのマークをクリックしたときに、遷移先の地図で
 マーカーを表示できるか?
 受け渡すパラメータがなく、不可能と思われる。
・複数のマーカーを指定可能か?
  addMarkerByAddressまたは、addMarkerByCoordsを複数記述することで可能。
・複数のポイントがあった場合、それごとに色を変えられる?
  デフォルトでは不可能であるが、それぞれのアイコンを用意し、addMarkerByAddressまたは、addMarkerByCoordsのパラメータから指定することで可能。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。