Widget Example‎ > ‎

Google Maps


使用Google Maps API和Bondi Gelocation API来制作一个利用地图表示现在所在位置的简单例子。

生成Google Maps API 密钥


通过访问下面的URL网址可以生成Google Maps API 密钥。输入网址的地方,请输入应用程序上传到的服务器的网址。


新建项目

从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的设定无效,指定包含服务器名的URL。



当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文件

新建一个名为js的文件夹,在里面新建一个名为script.js的文件。

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
<!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>

Packaging

接下来将进行packaging。在Eclipse里,选择[Droidget]-[Packaging]

通过USB传送到手机

通过USB接口,将开发用的电脑和手机进行连接,从Eclipse里选择[Droidget]-[Packaging Install]

通过网络传送到手机

为了将完成的FoursquareSample.wgt通过网络传送到手机里,我们需要新建一个下载用的文件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