Re: [OSGeoJapan-discuss] 【QGIS1.7.4】GoogleLayersプラグインでエラーがでます。

Mage Whopper magewhopper @ gmail.com
2012年 3月 3日 (土) 13:15:21 EST


喜多様、みなさま

Mage Whopperと申します。


strftime("%d%m%Y_%H%M%S%s")でエラーが出ているようなので
少し調べてみました。


この"%s"はstrftimeのpythondocには含まれていない
非標準のフォーマット指定子です。
http://docs.python.org/library/datetime.html

unix time値を返す指定子で、linuxやMacOSでは動作していますが、
windows32では動作しない、ということのようです。
http://stackoverflow.com/questions/2775864/python-datetime-to-unix-timestamp/2775947#2775947

これには python3.2以降での対応が予定されているようです。(未確定)
http://grokbase.com/t/python/docs/111jn8tsvq/issue10938-undocumented-option-for-datetime-strftime-s
それが以前のpythonでなんとなく動いていた、ということもあるでしょう。

そのため、正攻法での解決策はなく、
1. 以前のバージョンで動いていたなら戻してみる
2. GoogleLayers PluginではなくOpenLayers pluginを使用する
3. ソースに手を入れる
ぐらいが策として考えられそうです。
今後も使用するのであれば2が正解といえそうです。

1. は不明/情報なしのため方法は割愛します。

2. Google Layers pluginは
http://osgeo-org.1560.n6.nabble.com/Dropping-Google-Layers-plugin-td4100829.html
でOpenLayers pluginに機能を譲り、
以後更新しないステータスとなっているようなので
単にGoogle mapsを表示する目的であれば
GoogleLayersの代わりにOpen Layers plugin
を利用するようシフトするのがよいでしょう。

pluginを組み込んだ状態でいろいろ作り込まれている場合には
簡単に乗り換えるわけにはいかないでしょうから
また別の手を考えます。

3. あまり大きな声でおすすめできない方法になりますが
バージョンを戻したり、別のプラグインへの移行が難しいときには、
今のGoogleLayers プラグインを変更しての対処ができそうです。

エラーが出ている箇所は単にセッションIDを生成している所なので、
C:/Users/kita/.qgis/python/plugins\GoogleLayers\gmaps.py
の21行目
     sessionid = t.strftime("%d%m%Y_%H%M%S%s")
を
     sessionid = t.strftime("%d%m%Y_%H%M%S%z")
に変えたら動くような気がします。
Windows環境を持ち合わせていないため確認できていません。すみません。
%zより%fがいいかもしれません。

私にわかりそうなのはこのくらいです。
以上です。

Mage Whopper
magewhopper @ gmail.com

2012年3月4日0:50 Nobusuke Iwasaki <wata909 @ gmail.com>:
> 喜多さん、みなさま
>
> 岩崎です。
> その辺は余り詳しくないので確たることは言えないのですが、本家のMLを斜め読みしている限りでは、Pythonのバージョンが上がったのが原因ではないかと思います。
> 添付されているエラーメッセージを見る限り、Pythonのバージョンは2.7.2のようですが、その前は2.5が使われていたような気がします。
>
> 前のバージョンに戻してみるのも、一つの手かも知れません。
>
> みなさま、フォローよろしくお願いします。
>
> 2012年3月3日22:00 喜多耕一 <kou35tochas @ gmail.com>:
>> みなさま
>>
>> 昨日QGISのOSGeo4W版(Windows7)を1.7.4にバージョンアップしたら、GoogleLaersプラグイン呼び出し時にエラーが出て、プラグインが使えなくなりました。
>> エラーの内容は以下のとおり。
>> =========================
>> GoogleLayersプラグインをロードできませnでしたは内部でinitGui()メソッドを呼び出し中にエラーが発生しました
>>
>> Traceback (most recent call last):
>>   File "D:/OSGeo4W/QGIS_install/apps/qgis/./python\qgis\utils.py", line 147,
>> in startPlugin
>>     plugins[packageName].initGui()
>>   File "C:/Users/kita/.qgis/python/plugins\GoogleLayers\GoogleLayers.py",
>> line 33, in initGui
>>     self.sessionid = gmaps.get_sessionid()
>>   File "C:/Users/kita/.qgis/python/plugins\GoogleLayers\gmaps.py", line 21,
>> in get_sessionid
>>     sessionid = t.strftime("%d%m%Y_%H%M%S%s")
>> ValueError: Invalid format string
>>
>> Pythonバージョン:
>> 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
>> =========================
>>
>> プラグインインストーラーで一度アンインストールして、再度インストルしましたが改善しませんでした。
>> バージョンが対応しなくなったのか、なにが悪いのかわかりません。
>> わかる方がいらっしゃいましたら、教えてください。
>> よろしくお願いします。
>>
>> 喜多耕一
>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> OSGeoJapan-discuss @ lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>
>
>
> --
> 岩崎 亘典
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>


OSGeoJapan-discuss メーリングリストの案内