フォトアルバム

2009年7月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

なかのひと

アンケート

  • Do you Like?
    アンケート
    どのColdfusion用フレームワークが好き?
    ModelGlue:Unity
    ModelGLue
    Mach-II
    FuseBox
    LiteWire
    OnTap
    ColdBox
    OnAir
    cfWheels
    CFRails

    [PR]アンログ.jp 自動車保険

373news.com

想ひ出

  • Dvc00050
    携帯で撮った写真をアルバムにしています。

サムネイル

  • CF-OOP









  • ganymean.org









  • シナプス

Google Analytics

Google Maps

cf_googlemap

Brian RinaldiのThe ColdFusion Open-Source Project Listを久しぶりに眺めていたら、CF_GoogleMapというGoogle Maps用カスタムタグを見つけました。
以前紹介したCFGoogleMapsというCFCと異なるアプローチですが、こちらのほうが結構使いやすいかもしれません。
ただし、日本国内のGeocodingはサポートされていないので、住所に対する位置情報は別途与える必要があります。

使用可能なタグは、以下の5つです。

  • CF_GoogleMap
    • マップ表示領域とデフォルトビューを定義する親タグです。
    • このタグ内部に残りの3つのタグを配置します。
  • CF_GoogleMapIcon
    • 位置情報表示用のカスタムアイコンを定義します。
  • CF_GoogleMapLine
    • 複数のCF_GoogleMapPointを直線で結びます。
  • CF_GoogleMapPoint
    • マップ上に位置情報を定義します。
    • 位置情報をインフォメーションウィンドウで表示したり、CF_GoogleMapLineタグ内部に複数配置すると、直線を引けます。
  • CF_GoogleMapShow
    • 地図を表示するために、CF_GoogleMapタグの直後に配置します。

サンプルスクリプトは、以下のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
</head>
<body>
<cf_googlemap width="500" height="300" key="#Application.GoogleMapKey#" maptype="map">
<cf_googlemappoint title="Bashas" address="4321 E. Baseline Rd gilbert az 85234" lon="-111.74097" lat="33.379044">
</cf_googlemap>
<cf_googlemapshow>
</body>
</html>



			

CFGoogleMapsサンプル

CFGoogleMapsとGeocode.JPを使って、GoogleMapsのサンプル表示を行なってみました。
私の住む鹿児島市(たぶん、鹿児島市役所)と自宅(鹿児島市上福元町・・・)の住所をGeocode.JPに投げると緯度経度が帰ってくるので、これをCFGoogleMapsに食わせると、

こんな

感じになります。

PHPベースのGoogleMapAPIもインストールしてみました。

こちら

このPHPサンプルソースは、MVCスタイルになっていないので、PEAR(オープンソースコード構造化ライブラリ)やSmarty(テンプレートエンジン)に対応させようと思っているんだけど、うまくいかない・・・やはり、PHPは苦手だ・・・。
苦手なことには、あえてチャレンジしなきゃね!!

ColdFusionMapにJoin!

Joe Rinehartのブログに、ColdfusionDeveloper's Mapへの参加を呼びかける記事があったので、参加してみました。日本一番乗りみたいだ。ちょっぴり、うれしい。

Frappr map for CF:  http://www.frappr.com/cfdevelopers.

CFGoogleMaps

GoogleMapsAPIのPHP用クラスライブラリに続いて、Coldfusion用クラスライブラリが引っかかりました。

作者:Bryan Kaiser
CFCクラス名:CFGoogleMaps
対応バージョン:GoogleMapsAPI V1
リリース日:2005/10/27

サンプルスクリプト例は、以下のとおりです。
  1. CFCコンポーネント名を与えて、オブジェクト化
  2. GoogleMapsAPI KEYとマップセンターの緯度と経度を与えて初期化
  3. あとは、CFOUTPUTで呼び出すだけ
<html>
<body>
<cfscript>
    //Create the object
    cfgm = CreateObject('component','cfgooglemaps');
    //Pass the init function your google key and the
    //lat and lon on which the map should be centered
    cfgm.init('INSERT GOOGLE MAP KEY',38.898748,-77.037684);
</cfscript>

<cfoutput>
    <!--- Now just output the map --->
    #cfgm.getMap()#
</cfoutput>
</body>
</html>

ModelGlue+GoogleMaps+AjaxCFC+αで面白いことができそう・・・
Rob Gondaのサンプルを例に、あれこれ模索してみます。

GoogleMapsAPI for PHP

OpenPNEを使った地域SNS:ショコベに、GoogleMapsを使ったマップサービスが登場しているので、PHP用のGoogleMapsAPIクラスライブラリがあるのだろうと思い検索してみたら、ありました。-- GoogleMapsAPI.class.php --
本家サイトはこちら、国内では、ほそいりょすけさんが紹介している。
GoogleMapsAPIのV2にも対応していて、GOverviewControllにも対応しているので、使えそう。
ただし、GeoCodingが米国しか使えないYAHOOをデフォルトになっているので要注意。また、GeoCoding結果をDBにキャッシュする仕組みも実装されています。
個人的には、これを継承して以下のように使いたいと思います。

  1. GeoCoding用とGoogleMapsAPI用オリジナルクラスを新規に作成
  2. GeoCoding用クラスは、独自に実装。(キャッシングも独自実装、日本版GeoCodingは、Googleかgeocoding.jpを使用する)
  3. GoogleMapsAPI用オリジナルクラスは、GoogleMapsAPIを継承しつつ、拡張する。
  4. Mapクラスを新規に作成し、GeoCoding用とGoogleMapsAPI用オリジナルクラスを継承する。


AjaxCFC

昨年、CFAjaxを見て、フレームワークとの整合性が悪いなあーと思っていたら、
CFCベースのAjaxフレームワークが出てきました。
Rob Gondaのブログに行くと、ModelGlueとの連携も紹介してくれています。
Robさん、サンキュ!
これで、GoogleMapsとのマッシュアップが簡単に出来そう!

ajaxCFC for Model-Glue Explained

Ajax.cfcは、ModelGlueで利用可能な汎用modelです。したがって、コントローラで利用可能です。コントローラ内のinitファンクションで初期化し、コントローラ内のvariablesスコープに常駐させます。

<cffunction name="Init" access="Public" returnType="controller" output="false" hint="I build a new SampleController">
  <cfargument name="ModelGlue">
 
  <cfscript>
      super.Init(arguments.ModelGlue);
    variables.echo = createObject("component", "blog.projects.ajaxcfc.examples.modelgluesamples.echo.model.echo");
    variables.ajax = createObject("component", "blog.projects.ajaxcfc.examples.modelgluesamples.echo.model.ajax");
  </cfscript>
  <cfreturn this />
</cffunction>

Ajaxのリモートリクエストは、標準的なWebリクエストと同じく、以下のようにフローします。 

  1. ページがAJAXリクエストを発生させる。
  2. ModelGlueフレームワークによって、イベントが捕捉される。
  3. ModelGlueのイベントハンドラーがメッセージをブロードキャストする。
  4. コントローラでメッセージをピックアップする。
  5. AjaxCFCを使い、onRequestStart内で、メッセージをパースする。
  6. イベントに応じて他のmodelを利用し、レスポンスデータを作成する。
  7. 再度AjaxCFCを使い、レスポンスに備える。
  8. 'ajaxResponse'にレスポンス値をセットし、viewに渡す。
  9. modelGlue.xmlで、レスポンスを運びJavaScriptのコールバックファンクションに返すviewとしてのajaxResponse.cfmを含める。

ModelGlue+AjaxCFC+ColdspringでGoogleMapsとの連携版を作ってみよう!

GoogleMaps利用例3「ポジタル」

ポジタルという位置情報付SNS で、GoogleMapsを使ったルートマップ機能を見つけました。
<iframe>ベースのスクリプトを生成してくれるので、
自宅界隈から職場までのルートマップを貼り付けてみました。

GoogleMaps利用例2「Route Map」

Google Mapsをブログに貼り付ける方法の第二弾です。

Route Map for 歩ってみる--ためしてみる

1.表示したい中心ポイントを表示する。
2.旅行記ページのアドレス(URL)を入力する。
3.地図の幅と高さを指定する。
  幅300、高さ400くらいがいいかな?
4.スケールを指定する。
  3 か 4あたりがいいかも。
5.'試してみる'ボタンをクリックして、表示される地図を確認する。
6.一番下の<iframe ・・・・ </iframe>をコピーする。
7.エントリーの投稿画面で、表示させたい場所のHTML部分に
  ペーストする。

GoogleMaps利用例「お散歩マニア」

日替わりeカードの上に、なにげにBlogに貼る地図登場!というリンク・・・
クリックしてみると、GoogleMapsを使った「お散歩マニア」という神奈川県湘南の
地域ポータルサイトのようです。
GoogleMapsの位置情報をブログタイトルに貼り付け、トラックバック欄にこの
サイトのトラックバックURLを貼り付けてくださいということだが、
地図表示用タグをHTMLに貼り付けるだけでもちょっとは使えるかも・・


ブログに貼る地図『お散歩マニア』

ログイン

  • コントロールパネルへのログイン
    アカウント:

    パスワード:

PR情報

  • [[PR]]
  • おすすめバナー

更新ブログ

google Search

  • Google
    blog.ganymean.org
    WWW

最近のトラックバック

Google

SHINOBI

Blog powered by TypePad
Member since 04/2005