勉強会の会場情報からMapsにドンピシャでピンを立てられるか その2

| コメント(0) | トラックバック(0)
勉強会の会場情報からMapsにドンピシャでピンを立てられるかの続き。 IT勉強会カレンダーが持っている「場所」の情報をGoogle Mapsのgeocoding apiで緯度経度の情報に変換したい。ということで該当部分のrubyソースコードはこんな感じ。

 
      result =
        Net::HTTP.Proxy(HTTP_PROXY_HOST, HTTP_PROXY_PORT).get('www.google.com',
                                                              '/calendar/feeds/' +
                                                              calendar_id +
                                                              '/public/full/?' +
                                                              query_parameter)
      doc = REXML::Document.new(result)
      doc.elements.each('feed/entry') do |node|
        titleTag = node.elements['title'].text.scan(/^\[.+\]/)[0]
        latLngResult =
          Net::HTTP.Proxy(HTTP_PROXY_HOST, HTTP_PROXY_PORT).get('maps.google.com',
                                                                '/maps/geo?key=ABQIAAAAoNeNuyCEgoxGqOs0M2LDVRSEjokCM-_tycVHGOP0c6-HsV-cXxSOYcZzGZclhsHo1FzsTnLFVQuCOg&sensor=false&output=csv&q=' +
                                                                node.elements['gd:where'].attributes['valueString'])
        logger.debug(node.elements['gd:where'].attributes['valueString'] + "\t" + latLngResult)
        ....
      end

結論から言うとgeocoding-apiじゃ無理w
身も蓋もないけど、無理

ログ出力はこんな↓
Processing HomeController#data (for 127.0.0.1 at 2009-02-04 18:15:50) [GET]
Session ID: BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo
SGFzaHsABjoKQHVzZWR7AA==--4119ce7f2d8dcd775218ced99354b2104f760be9
Parameters: {"action"=>"data", "controller"=>"home"}
http://www.google.com/calendar/feeds/fvijvohm91uifvd9hratehf65k@group.calendar.google.com/public/full/?max-results=50&futureevents=true&orderby=starttime&singleevents=true&sortorder=ascending&ctz=Asia/Tokyo
テクノプラザ愛媛2FOA研修室 602,0,0,0
マイクロソフト株式会社 中部支店 602,0,0,0
日本メンター協会セミナールーム「メルクリオ京都2F」(株式会社リリオール) 602,0,0,0
Oracle Direct Seminar 602,0,0,0
日本オラクル 関西支社セミナールーム 602,0,0,0
西那須野公民館 602,0,0,0
キャンパスプラザ京都 6階 大学院サテライト 第3講習室 602,0,0,0
長尾ビル7階 602,0,0,0
三田某所 602,0,0,0
株式会社ゼノフィ(ローズベイ新宿ビル B1) 会議室 602,0,0,0
ブケ東海沼津 602,0,0,0
ベルサール神田 602,0,0,0
Oracle Direct Seminar 602,0,0,0
財団法人ひょうご情報教育機構 情報通信セキュリティ人材育成センター 602,0,0,0
Apple Store, Ginza 3Fシアター 602,0,0,0
大阪丸紅ビル 13F E共用会議室 602,0,0,0
TOSLOVE市ヶ谷会議室 602,0,0,0
ジュンク堂書店 大阪本店 3F 喫茶コーナー 602,0,0,0
セシオン杉並 200,9,35.6971049,139.6540699
ustream.tv(音声)、skype(テキストチャット) 、 partty.org 602,0,0,0
Cerego Japan 602,0,0,0
ヴィラージュ京都 602,0,0,0
(財)松本ソフト開発センター 1F 研修室 602,0,0,0
静岡県三島市 三島商工会議所 602,0,0,0
財団法人ひょうご情報教育機構 情報通信セキュリティ人材育成センター 602,0,0,0
福山商工会議所 602,0,0,0
中央電気倶楽部 513号室 602,0,0,0
宮崎観光ホテル(碧耀の間) 602,0,0,0
名古屋市工業研究所 ホール 602,0,0,0
文部科学省 3階講堂 602,0,0,0
富士ソフト アキバプラザ セミナールーム1 602,0,0,0
マイクロソフト株式会社 北海道支店 602,0,0,0
大阪大学中之島センター 7階講義室3 602,0,0,0
盛岡市産学官連携研究センター(コラボMIU)1Fロビー 602,0,0,0
自由が丘  くいもの屋 わん 602,0,0,0
京都大学 学術情報メディアセンター南館201号室 602,0,0,0
岩手大学地域連携推進センター 2F ゼミ室 602,0,0,0
名古屋市中区栄 シャトルビル3F シャトル栄 602,0,0,0
秋葉原UDX 200,9,35.7003942,139.7725994
京都光華女子大学 徳風館6F 小講堂 602,0,0,0
マイクロソフト株式会社北海道支店 セミナールーム 602,0,0,0
長岡市 中央公民館 406教室(予定) 602,0,0,0
株式会社イーシー・ワン 602,0,0,0
東京・赤坂 TBS放送センター内 602,0,0,0
朝霞市産業文化センター 研修室兼集会室 第3 602,0,0,0
Apple Store, Fukuoka Tenjin 602,0,0,0
日本IBM(株)福岡事業所 6階 601教室 602,0,0,0
びぎねっと 会議室 602,0,0,0
東京大学 情報学環・福武ホール 602,0,0,0
静岡クリエータ支援センター(CCC) 第二研修室 602,0,0,0
Completed in 11.54731 (0 reqs/sec) | Rendering: 0.00027 (0%) | DB: 0.00000 (0%) | 200 OK [http://localhost/home/data]


辛うじて座標に変換できたのは以下の2箇所だけ
セシオン杉並 200,9,35.6971049,139.6540699
秋葉原UDX 200,9,35.7003942,139.7725994

無理。

まぁ、こんなのは最初っからgeocodingすること自体が無駄だと分かっているわけで。できればリクエスト投げる事自体を止めたいんだがw
長尾ビル7階 602,0,0,0
三田某所 602,0,0,0



困るのはこういうヤツ
京都大学 学術情報メディアセンター南館201号室 602,0,0,0
「京都大学」だけならいいんですけどね。「学術情報メディアセンター南館201号室」は邪魔。無理。

20080204_1.png

精度はすげー納得いかないけど「無い袖は振れない」「YAGNI (You Are Not Gonna Need It)」ということで割り切って進めますかね。

トラックバック(0)

トラックバックURL: http://somethingnew2.com/cgi/b/mt-tb.cgi/1003

コメントする

この記事について

このページは、SATO Yozoが2009年2月 4日 19:10に書いた記事です。

ひとつ前の記事は「DIY before DRY」です。

次の記事は「リズム天国 その13」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 6.1.2