Widget Example‎ > ‎

Google Maps


Google Maps APIと、Bondi Gelocation APIを用いて、現在位置を地図で表示するサンプルを作成します。

Google Maps API Keyの生成


下記URLよりGoogle Maps API Keyを生成します。使用するWebサイトのURLは、アプリをアップロードするサーバのURLを指定します。 


新規プロジェクトの作成

Eclipseのメニューから[New]-[Project]を選択し、[New Project]ダイアログボックスで、"Droidget Wizard"-"project"を選択します。

GPSを使用したWidgetを開発するには、FeatureでGPSの設定をおこない、AccessでGoogle Mapで使用するURIを指定します。

それでは、FeatureでGPSが使えるように設定をおこないます。



次に、Google Mapsで使用できるようにするために、
http://maps.google.com
http://maps.gstatic.com
にアクセス許可をおろす必要があります。



http://maps.google.com にアクセス設定をおこないます。今回は、subdomainの設定も有効にし、サーバ名以下の http://google.com/ を記載します。


http://maps.gstatic.com にアクセス設定をおこないます。今回は、subdomainの設定は有効にせず、サーバ名も含んだURIを指定します。


FeatureとAccessのが反映されると
<feature name="http://bondi.omtp.org/api/gelocation" /> 
<access uri="http://google.com/" subdomains="true"/>
<access uri="http://maps.gstatic.com" subdomains="false"/>
が追加されます。

config.xml
<?xml version="1.0" encoding="UTF-8"?>
<widget id="MapSample_1279460600275" version="1.0" width="300" height="300">
    <content src="index.html" type="text/html"/>
    <name>SampleMap</name>
    <description>The sample of Google Map</description>
    <author url="http://www.gclue.jp">GClue</author>
    <icon src="icon.png"/>
    <license></license>
    <feature name="http://bondi.omtp.org/api/geolocation" />
    <access uri="http://google.com/" subdomains="true"/>
    <access uri="http://maps.gstatic.com" subdomains="false"/>
</widget>

JavaScriptファイルの作成

src/jsフォルダを作成し、script.jsを新規で作成します。

src/js/script.js
function onLoad(){
    bondi.geolocation.getCurrentPosition(onPositionSuccess, onPositionError, {timeout:40000});
}

// this function will handle each position updates
function onPositionSuccess(position) {
    lat = position.coords.latitude;
    lon = position.coords.longitude;

    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(lat, lon), 13);
    map.setUIToDefault();
}

// this function will handle each error in position updates
function onPositionError(error) {
    
}

index.htmlファイルの編集

index.htmlが表示されるタイミングで、Google Mapsが表示するサンプルを作成します。 

index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <title>Google Map Sample</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true_or_false&amp;key=発行されたKey" type="text/javascript"></script>
    <script type="text/javascript" src="js/script.js"></script>
</head>

<body onload="onLoad()">
    <div id="map_canvas" style="width: 300px; height: 300px"></div>
</body>

</html>

パッケージング
次に、パッケージングをおこないます。Eclipseの[Droidget]-[Packaging]を選択します。

USB経由での転送

USBで開発機と実機を接続し、Eclipseの[Droidget]-[Packaging Install]を選択します。

Web経由での転送

完成したMapSample.wgtをWeb経由で実機に転送するためには、download用のhtmlファイルを作成します。

Download.html
<html>
<head>
    <title>Download</title>
</head>
<body>
    <a href="droidget://www.example.com/MapSample.wgt">MapSample</a><br>
</body>
</html>

実行結果



※ 本チュートリアルで使用している画面は、KDDI/auのIS01の待ち受け画面を使用しています。

Comments