hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年3月26日(Tue) 4時16分
TOP » xpWiki::Dev » xpWiki開発日記 » 2013-02-16

2013 2月 16 (土)
 

xpWiki 5.01.23 リリース anchor.png Edit

module_icon.png Tag: プラグイン Plugin GoogleMaps

Page Top

概要 anchor.png Edit

xpWiki Version 5.01.23 をリリースしました。

今回の主な内容は、Google Maps Javascript API V3 に対応するプラグイン gmap, gmap_draw, gmap_icon, gmap_insertmaerker, gmap_mark のリリースです。

+ このマップの Wiki 記法

今回の Google Maps Javascript API V3 対応にあたり、PukiwikiでGoogleMaps3 - mynote をベースに xpWiki 版 googlemaps2 と同様に xpWiki 独自の改造を加えています。

素晴らしいプラグインを開発された、reddog(reddog.s35.xrea.com) さんに大感謝致します。 :-) :thumb_up:

googlemaps2 プラグインと比較して次のような違いがあります。

  • reddog さんの google maps プラグインとの相違点 (V2 時代も含む)
    • マップ名の自動付与 mark 利用時にもマップ名を省略すると直前のマップにポイントされる
    • insertmarker に住所を追加
    • マップオプシションの追加
      • autozoom 自動ズームで複数マーカー時にすべてのマーカーが表示される
      • wikitag マップの Wiki 記法表示オプション
      • dropmarker (マーカーを移動してポイント指定)を追加 (V3)
      • googlebar オプションの復活 (使用している API がすでにサポート対象外なので使えなくなるかも知れない) (V3)
    • マーカー用画像に ref プラグインを利用するようにした(サムネイル自動作成)
    • ズーム最大値を 17 から 21 に変更
    • ズーム値範囲を指定したマーカーのみズーム変更時にリライトするようにした (V3)
    • icon の影指定、Infowindow位置指定、ポリゴン指定のバグ修正 (V3)
    • insertmarker のフォームの値の cookie への保存する項目を増やした (V3)
    • insertmarker のフォームの値の cookie 保存の path を '/' に指定した (V3)
Page Top

googlemaps2 を gmap として使用する方法 anchor.png Edit

googlemaps2 プラグイン用の記述をそのままにしたまま、gmap プラグインを使用するようにしたい場合は、次のファイルを html側の xpWiki モジュールディレクトリ/private/plugin に配置してください。

ただし、ディレクトリ名を変更している場合は、各 Class のクラス名を変更する必要があります。

例えば、UsersWiki というディレクトリ名にしているなら "class xpwiki_xpwiki_plugin_googlemaps2" を "class xpwiki_UsersWiki_plugin_googlemaps2" いった具合に5つすべてのプラグインを修正してから xpWiki モジュールディレクトリ/private/plugin ディレクトリに配置してください。

filegooglemaps2.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2 extends xpwiki_plugin_googlemaps2 {
    
    var $_refname = 'gmap';
    
    function plugin_googlemaps2_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_draw.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_draw extends xpwiki_plugin_googlemaps2_draw {
    
    var $_refname = 'gmap_draw';
    
    function plugin_googlemaps2_draw_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_draw_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_draw_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_icon.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_icon extends xpwiki_plugin_googlemaps2_icon {
    
    var $_refname = 'gmap_icon';
    
    function plugin_googlemaps2_icon_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_icon_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_icon_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_insertmarker.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_insertmarker extends xpwiki_plugin_googlemaps2_insertmarker {
    
    var $_refname = 'gmap_insertmarker';
    
    function plugin_googlemaps2_insertmarker_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_insertmarker_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_insertmarker_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
filegooglemaps2_mark.inc.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?php
class xpwiki_xpwiki_plugin_googlemaps2_mark extends xpwiki_plugin_googlemaps2_mark {
    
    var $_refname = 'gmap_mark';
    
    function plugin_googlemaps2_mark_convert() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_convert'), func_get_args());
    }
 
    function plugin_googlemaps2_mark_inline() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_inline'), func_get_args());
    }
 
    function plugin_googlemaps2_mark_action() {
        $plugin =& $this->func->get_plugin_instance($this->_refname);
        return call_user_func_array(array(& $plugin, 'plugin_'.$this->_refname.'_action'), func_get_args());
    }
}
Page Top

GitHub 更新内容 anchor.png Edit

  • 5314944: [ref] add 4th parm $for_exterior(def:false) into get_ref_url()
    • ref プラグインの get_ref_url() メソッドに第4引数として $for_exterior(デフォルト false) を
      追加。添付ファイルを外部から取得する場合の URL を返す。
  • 4c76027: [core] head tag outputs in order of directions
    • head tag に出力指定した順番通り出力するようにした。 (js, css などのタイプ別にまとめられるのは以前の通り)
  • cf9cb33: [core:JavaScript] add domInitFunctionsFirst & domInitFunctionsFinal
  • 5d34d59: [plugin] gmap (Google Maps Javascript API V3)
    • Google Maps Javascript API V3 に対応するプラグイン gmap, gmap_draw, gmap_icon,
      gmap_insertmaerker, gmap_mark をリリース。

      指定するオプションは基本的に googlemaps2 プラグイン群と互換性がありますが、一部廃止されたものもあります。

  • 141bf07: xpWiki version 5.01.23
Page Top

一行コメント anchor.png Edit




コメント一覧

投稿ツリー


nonn50  投稿日時 2013-2-16 20:00 | 最終変更

gmap プラグインを提供いただき、ありがとうございました。

リリースされた xpWiki 5.01.23 に同梱されているものを利用させていただき、gmap の機能を確認しました。

  1. 取りあえず、「googlemaps2 を gmap として使用する方法」により、同時提供いただいた phpを小生サイトの2つのxpWikiに設置してみましたがOKです。
  2. その後、「管理者専用ツール」⇒「ページ内容の一括置換」により「googlemaps2」⇒「gmap」に置き換え処理を行いました。
    1. しかし、これだけでは「gmap」として機能付加されたオプションを有効としていない為か、貴サイトの gmap サンプルのように「地図の左下と真ん中上部に住所検索用ボックス」が表示されませんでした。
    2. 貴サイトでのgmap サンプルより 「ページの記述」と「日本の世界遺産.kml」をゴッソリとまねっこしてみましたが、「住所検索用ボックス」が表示されないことは変わりませんでした。

貴サイトでの gmapプラグイン記述(サンプルより転載)

引用:

#gmap(lat=35.179998, lng=136.906180, type=roadmap, zoom=8, width=100%, height=450px, autozoom=0, panctrl=normal, zoomctrl=normal, typectrl=normal, scalectrl=1, rotatectrl=1, streetviewctrl=1, crossctrl=1, searchctrl=1, overviewctrl=1, googlebar=1, dbclickzoom=1, scrollwheel=1, dropmarker=1, togglemarker=1, wikitag=1, kml=日本の世界遺産.kml, noiconname=無名, importicon=, backlinkmarker=0)

#gmap_insertmarker

貴サイトでの googlemaps2プラグイン記述(サンプルより転載)

引用:

#googlemaps2(lat=35.178298, lng=136.911621, width=100%, height=400px, zoom=9, type=hybrid, mapctrl=normal, typectrl=normal, scalectrl=show, overviewctrl=hide, crossctrl=show, togglemarker=1, googlebar=1)

#googlemaps2_insertmarker()

小生サイトの gmapプラグイン記述(「ページ内容の一括置換」にて置き換えしたもの)

引用:

#gmap(lat=37.683820, lng=139.746093, width=100%, height=500px, zoom=5, type=normal, mapctrl=normal, typectrl=normal, scalectrl=show, overviewctrl=hide, crossctrl=show, togglemarker=1, googlebar=1, wikitag=hide)

#gmap_insertmarker(?, option=value, ...?)

質問

  • 「住所検索用ボックス」を表示させるオプションを教えてください。
nao-pon  投稿日時 2013-2-17 1:50

nonn50 さん、早速にありがとうございます。 :-)

検索ボックスは、上部が searchctrl=1、下部が googlebar=1 で表示されます。

これで表示されない場合は、何かが原因で JavaScript エラーが出ている可能性があります。

xpWikiX-update で更新されましたか?それなら問題ないはずなので、ブラウザのキャッシュをクリアしてみるとかをお試しください。

nonn50  投稿日時 2013-2-17 10:58

御教授いただき、ありがとうございました。

  • 「ページ内容の一括置換」にて置き換えしたページに、検索ボックス表示のオプションを付けることにより、表示されました。
  • 誤解の無いように蛇足します。
    引用:

    これで表示されない場合は、何かが原因で JavaScript エラーが出ている可能性があります。
    xpWikiX-update で更新されましたか?それなら問題ないはずなので、ブラウザのキャッシュをクリアしてみるとかをお試しください。

    • ↑このことについては、「貴サイトでの gmapプラグイン記述」を真似っこしたページでは、当初から検索ボックスが表示されています。
    • 小生サイトの既存ページで「ページ内容の一括置換」を行いましたが、「googlebar=1」が無かったことと「scalectrl=show」の記述であったため表示されなかったということです。
      これを追加、修正することで表示できるようになったということです。

修正が可能であれば、以下をおねだり

  • 下部に表示される検索ボックスが、XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ります。
    20130217_01.PNG
    XOOPSの画面幅が広い場合は問題無いのですが...
    20130217_02.PNG

蛇足

  • 現在、Firefox、 Google Chrome では、Googleのマップが表示されます。
  • しかし、Internet Explorer 9、Opera では表示されません。
    いずれのブラウザも最新のバージョンです。
    ブラウザのキャッシュをクリアして、模様眺めしています。
    20130217_03.PNG
nao-pon  投稿日時 2013-2-17 17:35
引用:

「ページ内容の一括置換」にて置き換えしたページに、検索ボックス表示のオプションを付けることにより、表示されました。

よかったです。 :-D

引用:

下部に表示される検索ボックスが、XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ります。

確かにそうですよね。規約の上に表示することも可能ですが、Google Maps API の利用規約違反になると思います。

表示位置を変えてみたりしていますが、いまいちしっくりときません。どのようにするかちょっと考えてみます。

引用:

Internet Explorer 9、Opera では表示されません。

私の環境だと問題ないですね。なんだろう?

IE 9
更新バージョン 9.0.13 (Windows 7)
Opera 12
12.14 Build 1738 (Windows 7)
nonn50  投稿日時 2013-2-17 18:07 | 最終変更

毎度御世話様です。
自己レスです。

その後、「[plugin:gmap] correction of CSS」が上がっていたので、X-updateで更新してみました。

  • おねだりしました「XOOPSの画面幅が狭い場合には「検索ボックス」と「Googleの利用規約」とが被ることは解消できませんでした。
    • gmapプラグインのオプションである「overviewctrl=1」を除去することで、当該表示用行の幅で「検索ボックス」と「Googleの利用規約」が被らずに表示できることが判り、そのようにして対応することにしました。
    • この被る現象はテーマにより発生する物としないものが有ります。
      ちなみに、Xoops(X)に標準添付されている basic5、pack2011_default では被ります。
  • 蛇足として書きました 「Internet Explorer 9、Opera では、Googleのマップが表示されない状況」に変化はありませんでした。

ニァミスしたようなので追記

小生のパソコン環境

IE 9 (64bit-editon)
 更新バージョン 9.0.13 (Windows 7)
Opera 12
 12.14 Build 1738 (Windows 7) - 同じです

ついでながら報告します。

crossctrl をオンにした場合、利用しているテーマによっては "+" マークが肥大化して表示されます。
(このことは、以前からそうでした。)

20130217_10.PNG

テーマ側で解決すべきことなのか(?)判りませんが、とりあえず..

旧バージョンでもそうでしたが、新バージョンになってからはことさらに不自由してはおりませんが..

nonn50  投稿日時 2013-2-18 9:00

本日、xpWiki 5.01.24 にアップデートしました。
これにより

引用:

「Internet Explorer 9、Opera では、Googleのマップが表示されない状況」が解消されました。

ありがとうございました。

nao-pon  投稿日時 2013-2-18 9:10

ブラウザ依存ではなく、cookie が存在しない場合にエラーになっていました。 :hammer:

nonn50  投稿日時 2013-2-18 16:43

手ごろなオプション機能を提供いただき、ありがとうございました。

scalectrl=RB
googlebar=LB
として設定し、ついでに一旦除去した「overviewctrl=1」を復活させ。以下の画面に落ち着きました。

20130218_01.PNG

この表示ですと、小生が利用しているテーマの全てで問題無く表示できました :D



新しくコメントをつける

題名
ゲスト名
投稿本文

より詳細なコメント入力フォームへ

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 2073, today: 2, yesterday: 1
初版日時: 2013-02-16 (土) 16:51:31
最終更新: 2013-02-16 (土) 17:06:22 (JST) (2228d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

新規登録 | パスワード紛失



メインメニュー
付箋機能 (xpwiki)
付箋メニュー 
付箋の編集
文字色: 背景色:
お名前:  線接続id:
 
MenuBar (xpwiki)
ブックマーク
オンサイトブックマークは
ログインするとご利用になれます
[ログインする]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 50 人がオンライン中 :-)
(xpWiki::Dev : 1 人)

登録ユーザ: 0 & ゲスト: 50

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4600


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報