• 検索結果がありません。

Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発

N/A
N/A
Protected

Academic year: 2021

シェア "Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

【セッションNo.4】 Delphi/400開発ノウハウお教えします 「Googleマップ連携によるリッチなGUIアプリ開発」 株式会社ミガロ. システム事業部 プロジェクト推進室 小杉 智昭

(2)

【アジェンダ】

Webサービスを利用するには

Webサービス概要

(3)

2000年代初めごろに登場した「Webサービス」は着々と利用が 広がり、さまざまなサービスが提供されるようになりました。 この「Webサービス」は、Web関連のプログラムだけでなく、 クライアントPC上で稼働するVCLフォームアプリケーション (以下、クライアントアプリと呼称します)でも利用できます。 今回はWeb上で広く利用されている「Googleマップ」を中心に 幾つかの「Webサービス」をクライアントアプリ上で連携させ、 一歩進んだアプリケーションを作成してみましょう。

 はじめに

(4)

 Webサービス概要

APIが公開されているWebサービス

WAFL(Web API Fan‘s Library)というサイトによるとAPI提供団体は

100を超え、登録API数は205件にものぼります。 提供の形態(有料・無料、商用利用の可・不可)はさまざまです ので、各サービスの利用規約を必ずご確認ください。 ワッフル/WAFL(URL: http://wafl.net/) • WAFLに登録されているAPIを幾つかピックアップしますと... • Google Maps(グーグル株式会社)

• Amazon AWS(Amazon.com, Inc.)

(5)

 Webサービス概要

Webサービスを利用したアプリケーション例

取引先マスタを利用したアプリケーションを例にしてみましょう。 ①取引先マスタの住所から地図を表示します。 ②住所と実際の入口がずれたりすることを考慮し、 地図上の指定した地点を登録できるようにします。 ③最寄駅を検索します。 ④地図上の指定した地点の住所を表示します。 <利用するWebサービス> Google Maps(グーグル株式会社) SimpleAPI 最寄駅API(株式会社ユーザーローカル) Google Geocoding API(グーグル株式会社)

(6)

 Webサービス概要

Webサービスについての注意

通常、Webサービスは蓄積したデータを加工して返すだけ シンプルなサービスになります。 最寄駅検索の場合... Q)緯度・経度をパラメータとして渡す A)一定範囲内に存在する駅情報を近いものから順に XMLやJSONといったテキストデータにして返す → Googleやマイクロソフト等が実施している地図そのものを

(7)

 Webサービス概要

以前に紹介したものとの違い(Google Maps)

Googleの地図表示については、第2回テクニカルセミナーで ご紹介済み!? (以前)Googleの地図ページに検索ワードを与えて表示 (今回)APIを使って、地図そのものを直接制御

(8)

 Webサービスを利用するには

Google Mapsを利用するには

システム標準のブラウザをクライアントアプリ上で制御する TWebBrowserコンポーネントを利用します。 →TWebBrowserコンポーネント マイクロソフトが提供している WebBrowerコントロール (Internet Explorerの主要 コンポーネントの一つ)を利用 するためのコンポーネント。 TWebBrowser コンポーネント

(9)

 Webサービスを利用するには

Google Mapsを利用するには

TWebBrowserで任意のページを開く方法 ①Webページを開く 例:WebBrowser1.Navigate(‘http://www.migaro.co.jp’); ②ローカルのファイルを開く 例:WebBrowser1.Navigate(‘file://c:¥temp¥test.html’); ③プログラム内で指定したHTMLデータを開く

参考:How to load HTML directly to a WebBrowser

(10)

 Webサービスを利用するには

Google Mapsを利用するには

TWebBrowserでGoogleマップを表示してみましょう。 前述の③の手法を使って、Googleマップのチュートリアルに 記載された例を表示します http://code.google.com/intl/ja/apis/maps/documentation/javascript/tutorial.html 位置情報の取得にセンサー を使用するか 地図の中心として表示する 緯度、経度

(11)

 Webサービスを利用するには

Google Mapsを利用するには

TWebBrowserでGoogleマップを表示してみましょう。 センサーは 使用しない 弊社、東京事業所の 緯度、経度

(12)

 Webサービスを利用するには

Google Mapsを利用するには

TWebBrowserでGoogleマップを表示してみましょう。

表示したい HTMLの文字列

(13)

 Webサービスを利用するには

Google Mapsを利用するには

クライアントアプリ側からGoogleマップを制御してみましょう。

GoogleマップのAPIが提供されているのはJavaScriptかFlashのみ

→ TWebBrowserを経由してDelphiでJavaScriptの命令を 実行させます

クライアントアプリ (Delphi)

Google Maps API for JavaScript Webサービス TWebBrowser (JavaScript) TWebBrowserを経由してJavaScriptを呼び出すには MSHTMLユニットに定義されたIHTMLWindow2 インターフェースのexecScriptメソッドを呼び出します。 例:(WebBrowser1.Document as IHTMLDocument2). parentWindow.execScript(sScript, ‘JavaScript’);

(14)

 Webサービスを利用するには

Google Mapsを利用するには

クライアントアプリ側からGoogleマップを制御してみましょう。

(15)

 Webサービスを利用するには

Google Mapsを利用するには

Google Maps APIが提供する機能を幾つか確認してみましょう。 ①地図を表示する倍率を変更する(Mapクラス)

②指定した住所の地図を表示する(Geocoderクラス) ③各種制御ウィンドウを制御する

(Markerクラス / InfoWindowクラス) ④地図のスタイルをカスタマイズする(StyledMapTypeクラス)

参考:Google Maps JavaScript API V3リファレンス

(16)

 Webサービスを利用するには

Google Mapsを利用するには

Google Maps APIが提供する機能を幾つか確認してみましょう。 ①地図を表示する倍率を変更する(Mapクラス)

(17)

 Webサービスを利用するには

Google Mapsを利用するには

Google Maps APIが提供する機能を幾つか確認してみましょう。 ②指定した住所の地図を表示する(Geocoderクラス)

(18)

 Webサービスを利用するには

Google Mapsを利用するには

Google Maps APIが提供する機能を幾つか確認してみましょう。 ③各種制御ウィンドウを制御する

(19)

 Webサービスを利用するには

Google Mapsを利用するには

Google Maps APIが提供する機能を幾つか確認してみましょう。 ④地図のスタイルをカスタマイズする(StyledMapTypeクラス)

(20)

 Webサービスを利用するには

Google Mapsを利用するには

Googleマップ上で行われた操作をクライアントアプリ側に 通知してみましょう。 クライアントアプリ (Delphi)

Google Maps API for JavaScript Webサービス TWebBrowser (JavaScript) インターフェースの 追加実装が必要

IDocHostUIHandlerインターフェースの実装を追加する

参考:Calling Windows Client code from Javascript hosted

inside the WebBrowser control

(21)

 Webサービスを利用するには

Google Mapsを利用するには

Googleマップ上で行われた操作をクライアントアプリ側に 通知してみましょう。

(22)

 Webサービスを利用するには

Google Mapsを利用するには

Googleマップ上で行われた操作をクライアントアプリ側に 通知してみましょう。

(23)

 Webサービスを利用するには

SimpleAPI最寄駅APIを利用するには

一般的なWebサービスは、HTTPのようなWWW関連技術で、 XMLやJSONといった形式のテキストデータをやり取りします。 そのため、以下のようなコンポーネントが利用されます。 ①Webサービス側から指定されたURLに対して、 HTTPプロトコルでパラメータを渡す → TIdHTTPコンポーネントを利用 ②レスポンスとして、XMLやJSONといった形式のテキスト データが返されるため、解析して値を取得する → XMLならTXMLDocumentコンポーネントを利用 [Internet]カテゴリ TXMLDocument コンポーネント [Indy Clients]カテゴリ TIdHTTP コンポーネント

(24)

 Webサービスを利用するには

SimpleAPI最寄駅APIを利用するには

SimpleAPI vol.2 - 最寄り駅Webサービスについて URL: http://map.simpleapi.net/

(25)

 Webサービスを利用するには

SimpleAPI最寄駅APIを利用するには

Googleマップから取得した緯度・経度を使って、最寄駅を検索 してみましょう。 ①SimpleAPI最寄駅APIを呼び出すURL http://map.simpleapi.net/stationapi?lat=[緯度座標]&lon=[経度座標] ②レスポンスの形式 形式省略時はXML outputパラメータでJSONやhtml、phpシリアライズ等を指定可能

(26)

 Webサービスを利用するには

SimpleAPI最寄駅APIを利用するには

Googleマップから取得した緯度・経度を使って、最寄駅を検索 してみましょう。

(27)

 Webサービスを利用するには

SimpleAPI最寄駅APIを利用するには

Googleマップから取得した緯度・経度を使って、最寄駅を検索 してみましょう。

(28)

 Webサービスを利用するには

Google Geocoding APIを利用するには

Google Geocoding APIによる逆ジオコーディングについて

URL: http://code.google.com/intl/ja/apis/maps

(29)

 Webサービスを利用するには

Google Geocoding APIを利用するには

Googleマップから取得した緯度・経度を使って、住所を逆検索 してみましょう。

①Google Geocoding APIを呼び出すURL

http://maps.google.com/maps/api/geocode/xml?

latlng=[緯度],[経度]&sensor=false&language=ja

②レスポンスの形式

形式はXML

(30)

 Webサービスを利用するには

Google Geocoding APIを利用するには

Googleマップから取得した緯度・経度を使って、住所を逆検索 してみましょう。

(31)

 Googleマップを使ったアプリケーション例

参照

関連したドキュメント

を,松田教授開講20周年記念論文集1)に.発表してある

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

(7)

 当社は、従来、取引先に対する有償支給品代を「売上高」及び「売上原価」に計上しておりましたが、第1四

ユースカフェを利用して助産師に相談をした方に、 SRHR やユースカフェ等に関するアンケ

しかしながら、世の中には相当情報がはんらんしておりまして、中には怪しいような情 報もあります。先ほど芳住先生からお話があったのは

運航当時、 GPSはなく、 青函連絡船には、 レーダーを利用した独自開発の位置測定装置 が装備されていた。 しかし、

欄は、具体的な書類の名称を記載する。この場合、自己が開発したプログラ