×
Namespaces

Variants
Actions

Ovi地图JavaME Location API开发介绍

From Nokia Developer Wiki
Jump to: navigation, search

Needs-update.png本文需要更新: 如果您发现这篇文章有用,请修复下面的问题,然后从文章中删除 {{ArticleNeedsUpdate}} 模板,以消除此警告。

原因: hamishwillee (18 Jun 2013)
Very out of date - the location API is now part of the SDK and has been through a number of revisions.

WP Metro Icon Chinese.png
Article Metadata

文章
max.chen 在 26 Jun 2011 创建
最后由 hamishwillee 在 18 Jun 2013 编辑


Ovi Location API是诺基亚推出的一组针对Ovi地图服务进行开发的API。所以的API都支持相同的核心功能,包括交互式的地图,显示位置信息,计算和显示路线等。目前这些API支持Qt,JavaScript和JavaME的开发。

Contents

JavaME Location API

JavaME Location API包括地图显示,查找,计算线路等功能,这些API可以是开发者在手机上开发基于Ovi地图的应用。进行Ovi地图的开发首先要下载JavaME Location API的Jar包和文档:https://www.developer.nokia.com/Develop/asha/java/downloads.xhtml

这个包里面包括:

  • LBSP.jar——API 的Jar包. 应当将这个包引入到地图的工程。
  • doc\目录—— HTML格式的Javadoc。
  • example\目录—— 包含示例和源代码。

显示地图

通过创建一个MapCanvas类的实例来显示一个交互式的地图是十分简单的事情:

import javax.microedition.lcdui.Display; 
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import com.nokia.maps.map.MapCanvas;
import com.nokia.maps.common.ApplicationContext;
 
/**
* Minimal MIDP application to show map content to the user.
*/

public class MapMIDlet extends MIDlet {
/**
* This method is called at application start-up to set
* MapCanvas as a current Displayable.
* @see MIDlet
*/

protected void startApp() throws MIDletStateChangeException {
// Insert your own app_id and token that you obtained when you
// registered at https://api.forum.nokia.com/ovi-api/ui/registration
ApplicationContext.getInstance().setAppID(...);
ApplicationContext.getInstance().setToken(...);
Display display = Display.getDisplay(this);
MapCanvas mapCanvas = new MapCanvas( display );
display.setCurrent(mapCanvas);
}
 
/**
* @see MIDlet
*/

protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
}
 
/**
* see MIDlet
*/

protected void pauseApp() {
}
}

通过查看Javadoc,我们可以发现MapCanvas类中包含了MapDisplay和MapFactory的实例:

protected  MapDisplay map     ;          //MapDisplay that is rendered.
protected MapFactory mapFactory ; //MapFactory used to create MapDisplay.

它们之间的关系如下:

Ovimapapi map.png

注意:开发者可以不使用MapCanvas而通过MapDisplay和MapFactory创建更加灵活的应用。

添加地图元素

通过MapDisplay的addMapObject(MapObject object)方法可以向地图中添加例如标记,多边形,圆,长方形的多种图形。以添加标记为例:

  1. 创建一个com.nokia.maps.common.GeoCoordinate的实例用来指示标记的坐标。
  2. 创建 com.nokia.maps.map.StandardMarker的实例。
  3. 在地图上加入标记。
GeoCoordinate coord = new GeoCoordinate( 10, 10, 0 );  
MapStandardMarker marker = mapFactory.createStandardMarker(coord, 10, null );
map.addMapObject( marker );

搜索

通过SearchManager的静态方法SearchManager.getInstance()可以得到一个SearchManager的实例。SearchManager可以搜索指定的地名,也可以搜索给的的位置。搜索完成后通过getLocations()或getPlaces()获取搜索结果。


SearchManager searchManager = SearchManager.getInstance(); 
searchManager.geocode("Germany,Berlin", null );
Location[] locations = searchManager.getLocations();

线路

RouteManager提供了线路的服务。进行线路计算,需要以下条件:

  • 至少两个点 —— 线路的起止位置,com.nokia.maps.routing.Waypoint的实例
  • 线路计算模式 —— 如何进行线路的计算,com.nokia.maps.routing.RoutingMode的实例

下面的代码演示了如何简单的进行线路的计算:

WaypointParameterList waypoints = new WaypointParameterList(); 
RouteManager rm = RouteManager.getInstance();
RoutingMode[] modes = { new RoutingMode() };
rm.calculateRoute(waypoints, modes );


相关链接

This page was last modified on 18 June 2013, at 08:00.
112 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×