XOOPSモジュールGNAVIのGoogleMapを V3にしたい

このトピックの投稿一覧へ

なし XOOPSモジュールGNAVIのGoogleMapを V3にしたい

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2012/8/13 0:29 | 最終変更
タツ  管理人   投稿数: 2448
旅のサイトでは地図が不可欠です。そういう意味ではXOOPSを利用したこのサイトでもXOOPSモジュールであるGNAVIは重宝しています。現状このGNAVIではGoogleMapはV2の為、ストリートビューを利用することができません。海外の旅を登録している時、特にストリートビューが見れたらと思うことが多々あります。それでどうしてもGNAVIでストリートビューを見ることができるようにしたいと思うようになりました。

そもそもこのXOOPSというサイトは便利な反面、他力本願。いつか誰かがこのXOOPSモジュールGnaviのGoogleMapをV3に変えてくれるだろうと期待していましたが期待通りには行かないものです。じゃ自分でできるだけのことをしてみるかと挑戦してみました。

今の所、全て変更しうまく動作しているようです。ただし、なにぶん素人のやること。これ以下のことはあくまでも今後の参考にしていただきたいと思います

まずGoogle Maps APIの部分だけを変更すれば良いと推定。(PHPは触ったことがないのでこれについては編集は無理) これであればなんとかできそう。

GoogleMapのV2とV3の違いはmap用のkeyが必要無くなったことだけではなくコードおよびマップタイプの表現方法がかなり変わっています。

変更すべき箇所を調査し、変更しました。
1.html/modules/gnavi/js/map.jsをGoogleMap V3仕様に変更すれば良いと推定。

2.map.jsを利用しているプログラムを検索し変更する。
・xoops_trust_path/modules/gnavi/admin/category.php > 371
  ".$gnavi_googlemap_url."/maps?file=api&v=2&key=$gnavi_googlemapapi_key
→".$gnavi_googlemap_url."/maps/api/js?sensor=false

・xoops_trust_path/modules/gnavi/main/item.php > 114
  ".$gnavi_googlemap_url."/maps?file=api&v=2&key=$gnavi_googlemapapi_key
→".$gnavi_googlemap_url."/maps/api/js?sensor=false

・xoops_trust_path/modules/gnavi/main/map.php > 210
  ".$gnavi_googlemap_url."/maps?file=api&v=2&key=$gnavi_googlemapapi_key
→".$gnavi_googlemap_url."/maps/api/js?sensor=false

・xoops_trust_path/modules/gnavi/main/submit.php > 814
  ".$gnavi_googlemap_url."/maps?file=api&v=2&key=$gnavi_googlemapapi_key
→".$gnavi_googlemap_url."/maps/api/js?sensor=false

3.マップタイプを変更。
・xoops_trust_path/modules/gnavi/include/common_javalang.inc.php > 6
$gnavi_maptypes=array('G_NORMAL_MAP',
'G_SATELLITE_MAP',
'G_HYBRID_MAP',
'G_PHYSICAL_MAP',
'G_HYBRID_PHYSICAL_MAP',
'G_MOON_ELEVATION_MAP',
'G_MOON_VISIBLE_MAP',
'G_MARS_ELEVATION_MAP',
'G_MARS_VISIBLE_MAP',
'G_MARS_INFRARED_MAP',
'G_SKY_VISIBLE_MAP');

→ $gnavi_maptypes=array('ROADMAP',
'SATELLITE',
'HYBRID',
'TERRAIN');

・xoops_trust_path/modules/gnavi/xoops_version.php >13
 $modversion['version'] = 0.96 ;
→$modversion['version'] = 0.97 ;

・xoops_trust_path/modules/gnavi/xoops_version.php >518 519
'default' => 'G_NORMAL_MAP' ,
'options' => array('G_NORMAL_MAP'=>'G_NORMAL_MAP',
'G_SATELLITE_MAP'=>'G_SATELLITE_MAP',
'G_HYBRID_MAP'=>'G_HYBRID_MAP',
'G_PHYSICAL_MAP'=>'G_PHYSICAL_MAP',
'G_HYBRID_PHYSICAL_MAP'=>'G_HYBRID_PHYSICAL_MAP',
'G_MOON_ELEVATION_MAP'=>'G_MOON_ELEVATION_MAP',
'G_MOON_VISIBLE_MAP'=>'G_MOON_VISIBLE_MAP',
'G_MARS_ELEVATION_MAP'=>'G_MARS_ELEVATION_MAP',
'G_MARS_VISIBLE_MAP'=>'G_MARS_VISIBLE_MAP',
'G_MARS_INFRARED_MAP'=>'G_MARS_INFRARED_MAP',
'G_SKY_VISIBLE_MAP'=>'G_SKY_VISIBLE_MAP')

 →  'default' => 'ROADMAP' ,
'options' => array('ROADMAP'=>'ROADMAP',
'SATELLITE'=>'SATELLITE',
'HYBRID'=>'HYBRID',
'TERRAIN'=>'TERRAIN')

4.map.js内のfunctionの中でphpから直接利用されているものを検索しV3仕様に書き換える

・xoops_trust_path/modules/gnavi/main/item.php > 136
 gn_feedLoader
・xoops_trust_path/modules/gnavi/main/item.php > 124
 ShowItemGMap
・xoops_trust_path/modules/gnavi/main/map.php > 221
 ShowGMap
・xoops_trust_path/modules/gnavi/admin/category.php > 375
 InputGMap
・xoops_trust_path/modules/gnavi/main/submit.php > 818
 InputGMap
・xoops_trust_path/modules/gnavi/main/submit.php > 807
 showAddress
・xoops_trust_path/modules/gnavi/templates/map.html >26
 showAddress2
・xoops_trust_path/modules/gnavi/admin/category.php > 361
 ChangeMapArea →そのままでOK
・xoops_trust_path/modules/gnavi/main/submit.php > 829
 ChangeMapArea →そのままでOK

 変更後のmap.jsファイル

5.feedLoader keyが不要になった。keyがあっても動作可とのこと

・xoops_trust_path/modules/gnavi/main/item.php > 130
  http://www.google.com/jsapi?key=$gnavi_googlemapapi_key
 →http://www.google.com/jsapi

6.現GNAVIに反映する場合
 (1)データベースのマップタイプを変更することが必要。
   phpmyadminで変更で直接変更した。
   (例 G_NORMAL_MAP → ROADMAP)

 (2)変更をかけたファイルを上書きし、GNAVIモジュールのアップデートを行う。
 (3)最初に一旦、GNAVI一般設定でROADMAPとして保存する

以上です。
投票数:95 平均点:5.26

投稿ツリー


     条件検索へ

旅と気ままなフォーラム最新投稿

欲しい商品が必ず見つかるメジャーなネットショップ

ログイン

オンライン状況

188 人のユーザが現在オンラインです。 - 22 人のユーザが 旅と気ままなフォーラム を参照しています。.

登録ユーザ 0 ゲスト 188

Facebook,RSSリンク表示

検索

アクセスカウンタ

今日 : 185
昨日 : 197
総計 : 1754791