2011/07/28
2011/07/16
Google App EngineのJava版のチュートリアルを試してみました。
今までGoogle App Engineは、Python版しか使ったことがなかったので、Java版を使ってみました。下記の構成で試してみます。
・Windows7 Home
・Eclipse 3.7.0 Indigo
・Google Plugin for Eclipse
Google Plugin for Eclipseをインストールすれば、Google App Engine Java SDKも一緒にインストールされます。
Google App Engine java プロジェクトの作成
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/creating.html
の内容に従って、チュートリアルを進めます。
「JSP の使用」のところでエラーが出ました。
JSP の使用
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingjsps.html
/intl/ja/guestbook.jspにアクセスできません。というエラーです。調べてみると、チュートリアルのソースが間違っているようです。
SignGuestbookServlet.javaを修正
resp.sendRedirect("/intl/ja/guestbook.jsp");
を
resp.sendRedirect("/guestbook.jsp");
に修正
上記の問題は解決しました。その後のチュートリアルの内容は、問題なく動作できるのですが、「実行」をすると、「必要なプロジェクトでエラー」とのアラートが表示されます。ソースを確認すると、guestbook.jspに赤い×マークが付いています。アラートの内容を確認すると
型の安全性: Object から List
とのメッセージでした。このメッセージを調べると、下記のサイトの記載を見つけました。
「未検査キャスト」という警告が出たら
http://d.hatena.ne.jp/makiyamakoji/20090303/p1
「この警告に対する根本的な解決策はありません。」とのことなので、このままにしておきます。
アプリケーションのアップロードをします。
アプリケーションのアップロード
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/uploading.html
Eclipseのツールバーの[App Engine の配備(Deploy App Engine)] ボタンを使うと簡単にデプロイできました。
今まで、Pythonで作っていたアプリケーションIDを設定して、バージョンを一つ上げてアップしてみました。My Applicationsの管理画面のVersionsのページにて、アップしたVersion2をDefaultに設定すれば、問題なく動作しました。Google App Engine Java版は、Eclipseのプラグインを使えば、Eclipseがほぼ必要な作業はしてくれるので、簡単に出来る感じがしました。
http://vivo-red.appspot.com/guestbook.jsp
Google App Engineのサイトをみると、「Go」でもApp Engineの開発ができるようです。まだ、Google App Engineの日本語対応ページには、その記述はありませんが、下記にその記述がありました。
Google App Engine Getting Started: Go
http://code.google.com/intl/ja/appengine/docs/go/gettingstarted/
ラベル:
eclipse,
Google App Engine,
Java
2011/07/10
マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。
マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。このアプリのIEでの表示調整をしていなかったので修正してみました。まだ不具合は残っていますが、大まかなところは表示できるようになりました。
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました
http://vivo-design.blogspot.com/2011/07/google-app-engine.html
IETesterを使って表示を確認しました。IE5.5はGoogle Mapsの表示に不具合が残っています。IE6、IE7、IE8は問題なく表示されました。
IE9に関しては、IETesterで確認するとクラッシュしてしまうので、IE9単体で確認しました。問題ないようです。
このアプリを作成する際、IEでの表示不具合を修正する際、毎回のDeploy(デプロイ)時に、Googleアカウントとパスワードを入力するのが面倒でした。下記のサイトで、毎回のGoogleアカウントとパスワードの入力を不要にする方法を教えていただきました。
GAEサーバーにバッチで簡単デプロイ!
http://bit.ly/ozF72q
初回起動時だけ、Googleアカウントとパスワードの入力は必要ですが、それ以降は、パソコンを終了するまでは入力不要になります。バッチファイルをクリックするだけで、デプロイが完了するのでとても楽になりました。ありがとうございます。
ラベル:
Google App Engine,
Google Maps
2011/07/09
JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。
SAStrutsの次に、JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。Spring Framework 3.1を試します。SAStrutsについては、沢山の情報がありましたが、それに比べて、Spring Frameworkは日本語での情報が少ないように感じました。
SAStrutsと同様に、Eclipseプラグインを入れて、チュートリアル的なコンテンツがあれば、Spring Frameworkがどのようなものか分かると思います。しかし、SAStrutsでは、簡単に用意できた環境が、Spring Frameworkではなかなか用意できませんでした。
下記のサイトの記述を参考にSpringIDEプラグインを導入しました。
Springフレームワーク
http://w.livedoor.jp/w2u_dev/d/Spring%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF
しかし、下記のエラーが出ます。
1 つ以上の必須項目が見つからないため、インストールを完了できません。 Software being installed: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE) Missing requirement: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE) requires 'com.atlassian.connector.eclipse.jira.feature.group 0.0.0' but it could not be found
エラーメッセージから判断して、下記のプラグインをインストールしてみました。
http://download.eclipse.org/tools/ajdt/37/update
http://update.atlassian.com/atlassian-eclipse-plugin/e3.6/
さらに、色々調べてみると、SpringSource Tools Suite(STS)というものがあることが分かりました。エラーメッセージの中にも「SpringSource Tool Suite Runtime Error」という言葉があるので、SpringSource Tools Suite(STS)をインストールしました。
すると、SpringIDEプラグインのCoreだけはインストールすることが出来ました。
Eclipseの新規プロジェクトの選択肢の中にSpring関連のプロジェクトが用意されました。その中にSpringSource Tools Suiteもインストールされていました。
しかし、この後、チュートリアル的なコンテンツがどこにあるのかが分かりません。
Springの公式サイトにサンプルらしきものが公開されているので、これを試す方法から調べてみます。
https://src.springframework.org/svn/spring-samples/
2011/07/07
JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。
JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。
Javaのウェブアプリケーションフレームワークの比較を下記のページで教えていただきました。
Javaフレームワークの比較検討資料公開
http://d.hatena.ne.jp/t_yano/20081118/1227008018
このページの内容を拝見して、他のサイトも調べてみて、SAStruts、Spring Framework、Google Guiceなどに興味が出て来ました。どれも面白いそうです。どれも言葉ぐらいは聞いたことはありましたが、内容については、まったく知りませんでした。
この中から、まず、SAStrutsを試してます。Javaのウェブアプリケーションフレームワークとしては、Strutsはまだまだよく使われているとの情報をあちこちで見ました。SAStrutsは、Strutsを使いやすくしたものとの記述がありました。
Windows 7 で、SAStrutsの動く環境を用意します。
一番簡単に環境を用意するために、下記のパッケージを利用します。
Eclipse 3.7.0 Indigo Windows 32bit ベース / Pleiades All in One 3.7.0.v20110704
http://mergedoc.sourceforge.jp/
Eclipseが既に日本語化されていて、Tomcatも入っているので簡単です。
ダウンロードして解凍した「pleiades-e3.7-ultimate-jre_20110704」---「eclipse」フォルダの中にある「eclipse.exe」を起動します。
下記のページを参考に、eclipseにSAStrutsのプラグインをインストールします。
eclipseにSAStrutsのプラグインをインストール
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=2
次に、Super Agile Strutsチュートリアルの「sa-struts-tutorial-1.0.4-sp8.zip」をダウンロードします。
Super Agile Struts - Download
http://sastruts.seasar.org/download.html
次に、ダウンロードした「sa-struts-tutorial-1.0.4-sp8.zip」をセットアップします。
チュートリアルのセットアップ
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=3
「sa-struts-tutorial」プロジェクトのsrc/main/java/を展開して「tutorial.action」パッケージのIndexAction.javaを選択、 マウスの右クリックメニューより「SAStruts」→「サーバで表示」を選択します。
チュートリアルのトップページが表示されました。
プログラムも正常に動作しました。「足し算」プログラムを元に、引き算に修正してみました。
2011/07/04
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました。
Google App Engine と Maps で作ったWebアプリのソースを公開されている方がいました。面白そうなソースなので、設置をして試してみました。このような動くサンプルを見せていただけると、とても良くGoogle App Engineの構造が分かります。感謝!
自分のアカウントでアップしてみました。Pythonの部分は1点のみ修正をしています。見栄えについては変更しました。
My Photo in Google Maps on GAE
http://vivo-map.appspot.com/maps
Pythonのソースの修正した部分について。ローカルで動作テストをすると、ジオコーディングは正常に動作するのですが、サーバ上に上げると、緯度経度の取得が出来ない現象がありました。サーバ上で何が起きているのかをステータスコードで確認をすると、「google.maps.GeocoderStatus.OVER_QUERY_LIMIT」というステータスを取得していることが分かりました。これは、「使用制限回数の上限を超えたことを示している」そうです。ローカルからのリクエストは問題なく、サーバからのリクエストで問題が起きるのが、よく分かりません。
ジオコーディングをしている下記の部分を変更してみました。
class PostPage(webapp.RequestHandler):
def getGeometory(self, place):
url = u"http://maps.google.com/maps/api/geocode/xml?address=%s&sensor=false" % urllib.quote(place.encode('utf8'))
result = urlfetch.fetch(url)
lat = 35.6895060 # 東京
lng = 139.6917010 # 東京
if result.status_code == 200:
doc = xml.dom.minidom.parseString(result.content)
if doc.getElementsByTagName('status').item(0).childNodes[0].data == "OK":
lat = doc.getElementsByTagName('lat').item(0).childNodes[0].data
lng = doc.getElementsByTagName('lng').item(0).childNodes[0].data
return db.GeoPt(lat, lng)
Pythonのgooglemapsモジュールを使った検索にしてみました。内部では同じことをしているのだから、ダメかと思いましたが、サーバ上でも動作をしました。
# モジュールを追加
from googlemaps import GoogleMaps
class PostPage(webapp.RequestHandler):
def getGeometory(self, place):
gmaps = GoogleMaps()
address = place.encode('utf8')
lat, lng = gmaps.address_to_latlng(address)
return db.GeoPt(lat, lng)
でたらめな場所(地名/駅名/〒)の情報でも、何かしらの場所の緯度経度に変換をして地図にポイントをします。
下記の記事のソースを使わせていただきました。
Google App Engine と Maps でWebアプリ作ってみた
http://sakitake4.blogspot.com/2011/04/google-app-engine-maps-web.html?spref=tw
ありがとうございました。
ラベル:
Google App Engine,
Google Maps,
Python
2011/06/30
Google Map APIを使って、簡単に地名などから緯度、経度に変換が出来るPythonのモジュール「googlemaps」を使ってみました
Google Map APIを使って、簡単に geocoding や reverse geocoding が出来るPythonのモジュールがあります。
googlemaps 1.0.2
http://pypi.python.org/pypi/googlemaps/
ジオコーディングとは、住所や地名、駅名などの情報から、緯度・経度の座標値に変換する技術のことです。
住所から、緯度、経度への変換
> python
Python 2.5.2 [MSC v.1310 32 bit (Intel)] onwin32
>>> from googlemaps import GoogleMaps
>>> gmaps = GoogleMaps('API_Key')
>>> address = u'岡山市'
>>> lat, lng = gmaps.address_to_latlng(address)
>>> print lat, lng
34.6551456 133.9195019
サンプルでは、Google MapのAPIキーを使っての説明をしていますが、Google Maps API v3からは、APIキーは不要になったので、APIキーを渡さなくても操作できます。
>>> from googlemaps import GoogleMaps >>> gmaps = GoogleMaps() >>> address = u'岡山市' >>> lat, lng = gmaps.address_to_latlng(address) >>> print lat, lng 34.6551456 133.9195019
Linux上でも同様に動きます。
$ python Python 2.6 [GCC 3.4.4 20050721 (Red Hat 3.4.4-2)] on linux2 >>> from googlemaps import GoogleMaps >>> gmaps = GoogleMaps() >>> address = u'岡山市' >>> lat, lng = gmaps.address_to_latlng(address) >>> print lat, lng 34.6551456 133.9195019
逆(緯度、経度から住所への変換)も可能です。
>>> destination = gmaps.latlng_to_address(34.6551456,133.9195019) >>> print destination 岡山市役所
その近辺の検索
「秋葉原周辺のWifiスポットのある喫茶店」?の検索結果の最初のもの「」Japan town acupuncture & Oriental Medicine, Inc.」がヒット
>>> local = gmaps.local_search('cafes w. free power near akihabara')
>>> print local['responseData']['results'][0]['titleNoFormatting']
Japan town acupuncture & Oriental Medicine, Inc.
「Okayama」に変ると「Ryokan Misono Kurashiki」がヒット>>> local = gmaps.local_search('cafes w. free power near Okayama')
>>> print local['responseData']['results'][0]['titleNoFormatting']
Ryokan Misono Kurashiki
「Okayamaの近くのschool」の検索結果の4番目のもの>>> local = gmaps.local_search('school near Okayama')
>>> print local['responseData']['results'][3]['titleNoFormatting']
フラップアップゼミ
「岡山市」に変ると「鬼ヶ島宮ノ松原キャンプ場」がヒット>>> local = gmaps.local_search(u'school near 岡山市') >>> print local['responseData']['results'][3]['titleNoFormatting'] 鬼ヶ島宮ノ松原キャンプ場「岡山市の近くの学校」に変ると「KLCセミナー倉敷校」がヒット
>>> local = gmaps.local_search(u'学校 near 岡山市') >>> print local['responseData']['results'][3]['titleNoFormatting'] KLCセミナー倉敷校
ラベル:
Google Maps,
Python
登録:
投稿 (Atom)
人気の投稿 (過去 30 日間)
-
android-scripting 「SL4A」上で、6行で作れるAndroidのバーコードスキャナープログラムを試してみました。android-scripting 「SL4A」のサイトにサンプルプログラムのリンクとして、下記のサイトがありました。 Android...
-
MacBook Airを仕事でプロジェクターに接続ことがあり、どのようにすれば、切り替えが出来るのかを調べました。忘れやすいので、備忘録として記録。 Windowsノートパソコンにプロジェクターを繋げて、プロジェクターに出力を切り替える時には、ファンクションキ...
-
Tweet 面白法人カヤックの期間限定のサービス「Flash2Android」を試してみました。wonderflへ投稿した自分のFlash作品をAndroidアプリへ変換するサービスです。 Flash2Android http://wonderfl.net/fla...
-
昨日申し込みをしていた Evernote API Keyが送られてきていました。 早速、Pythonのサンプルコードに「consumer key」「consumer secret」を設定して試してみました。evernote-api-1.17/lib/python の階層...
-
自分だけのクラウド環境を簡単に構築できるというサービス「ServersMan」を使ってみました。用意されている環境は、Androidだけではなく、 iPhone/iPad、Windows Mobile、Desktop(forWindows)、CASがあります。 Andr...
-
ASE(Android Scripting Environment)で作成したPythonスクリプトから、OAuth認証が出来なかった現象が解決しました。 参考にさせていただいた、下記のブログの記載 AndroidからPythonでTwitterに投稿する Twit...
-
App Inventor for Android のチュートリアルをやってみました。 App Inventor for Android Hello Purr - A Tutorial Introduction to App Inventor 画像をクリックすると、「...
-
北野武さんのコラム「ここがおかしいニッポン」(山陽新聞 2010/07/03)の中に、最近思っていることを上手く表現されていると感じた箇所がありました。 「みんな情報の家畜」 最近、自分が情報を探しているのではなくて、情報に探させられているのではないかと思うことがあり...
-
寛平さんの世界4万km走破でのゴール、サッカー「アジアカップ」のカタール戦の3-2の逆転勝利と、今日はよくテレビを観ていました。テレビを横目に観ながら、「Google Map API helper app for Djangoを使ってみたいので、再度Djangoをチュートリア...
-
フォトショップなどのレタッチソフトを使えば、簡単に分身の写真を作ることができるという記事がありました。 分身の術!自分のクローンを増殖させてみた写真22枚 http://labaq.com/archives/51723286.html 面白そうだし、簡単に出来...






















