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

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー




前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2012/8/13 0:29 | 最終変更
タツ  管理人   投稿数: 2389 オンライン
旅のサイトでは地図が不可欠です。そういう意味では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として保存する

以上です。
投票数:93 平均点:5.27
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/8/15 18:33 | 最終変更
nonn50  一人前   投稿数: 82
お邪魔する度、貴兄の工事には本当にビックリさせられます。素晴らしいことを考えるんですね?小生も真似っこさせていただきます。追記 教えてください。>6.現GNAVIに反映する場合>>(1)データベースのマップタイプを変更することが必要。>   phpmyadminで変...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/8/15 23:25 | 最終変更
タツ  管理人   投稿数: 2389 オンライン
こんばんわ、nonn50さん久しぶりです。質問の件ですが、データベースを組むことができればSQLで一発で変更が可能だと思います。ただ、私はうまく扱えないし、数も大したことはないのでレコード毎に手作業で行いました。変更する箇所についてはご推察の通りデータベースのgn...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/8/16 10:02
nonn50  一人前   投稿数: 82
早速の回答、ありがとうございました。退職して暇な爺は、チャレンジしてみましたが、6.(2)「変更をかけたファイルを上書き」した時点で、XOOPSの管理者画面が真っ白になりました。勿論、G-nave管理者画面も真っ白です。その為、GNAVIモジュールのアップデートを行うことが...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/8/16 12:10
タツ  管理人   投稿数: 2389 オンライン
実は、私もこの・xoops_trust_path/modules/gnavi/xoops_version.php >13 $modversion['version'] = 0.96 ;→$modversion['version'] = 0.97 ;の所で、→$modversion['version'] = 0.96a ;とすると、同じく管理画面の項目は表示されるもの...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/8/16 13:23
nonn50  一人前   投稿数: 82
まことにもって、タイムリーに的確なアドバイスをいただきました。小生サイトのGnaviのバージョンは、もともと0.97です。貴兄に敬意を称して「0.97o」としましたが、それが敗因でした(汗)0.97として、真っ白現象は発生しなくなりました。現在は試験サイトで試していますが...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/8/16 18:07 | 最終変更
nonn50  一人前   投稿数: 82
貴兄の当初書き込みにてこれ以下のことはあくまでも今後の参考にしていただきたいと思いますとのことでしたのて、追っかけマンはしないつもりですが、少々教えてください。ストリートビューは動作しているのですが、画像を表示させようとする際(下記URL)にて以下のPHPデバ...詳細を見る!
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/8/16 22:00 | 最終変更
タツ  管理人   投稿数: 2389 オンライン
nonn50さん、そのエラー表示気になりますね。早速ですが、GNAVIバージョン0.96の113行付近(そちらのコードで言えば一行下になります)の該当する辺りのコードを表示します。もし、原因が分かれば教えていただけないでしょうか?見る限りでは一部コードで相違するところがあり...詳細を見る!



     条件検索へ

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

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

ログイン

Facebook,RSSリンク表示

検索

アクセスカウンタ

今日 : 530
昨日 : 240
総計 : 1619715