XOOPSモジュールGNAVIのGoogleMapを V3にしたい
タツ
投稿数: 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として保存する
以上です。
そもそもこの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
投稿ツリー
-
XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/13 0:29)
- Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい (nonn50, 2012/8/15 18:33)
-
Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/15 23:25)
-
Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 10:02)
-
Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/16 12:10)
-
Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 13:23)
-
Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 18:07)
- Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい (タツ, 2012/8/16 22:00)
-
Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/17 9:17)
-
Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/17 9:53)
-
Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/17 18:45)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/18 10:19)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/19 21:22)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/20 10:19)
- Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい (タツ, 2012/8/23 1:28)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/20 10:19)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/19 21:22)
-
Re: Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/18 10:19)
-
Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/17 18:45)
-
Re: Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/17 9:53)
-
Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 18:07)
-
Re: Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 13:23)
-
Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2012/8/16 12:10)
-
Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2012/8/16 10:02)
- GNAVIのGoogleMap V3化が動いています (nonn50, 2013/2/2 9:04)
-
Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(タツ, 2013/2/4 8:22)
-
Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2013/2/4 17:55)
- Re: Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい (タツ, 2013/2/5 0:04)
-
Re: XOOPSモジュールGNAVIのGoogleMapを V3にしたい
(nonn50, 2013/2/4 17:55)