将基于位置的服务添加到应用程序
将基于位置的服务添加到应用程序
目的
本教程介绍如何将基于位置的服务添加到一个普通的 J2EE 应用程序。
所需时间
大约 45 分钟
主题
本教程包括下列主题:
查看屏幕截图
将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)
注意:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
概述
OracleAS Wireless 基于位置的服务 (LBS) 平台提供了一个简单的、集成的解决方案,可用 LBS 功能强化应用程序。使用 OracleAS Wireless LBS 功能,您可以将地图、行驶方向以及黄页中的信息添加到应用程序。
前提条件
开始本教程之前,您应该:
1.
已经安装了 Oracle JDeveloper 10g(版本 9.0.5.1)
2.
已经安装了 Oracle 应用服务器 10g 基础架构
3.
已经安装了 Oracle 应用服务器 10g Portal 和 Wireless
创建一个普通的 J2EE 应用程序
您可以先创建一个普通的 J2EE 应用程序,然后再向其添加基于位置的功能。要创建一个简单的 J2EE 应用程序,请执行下列步骤:
1.
启动 JDeveloper。在 Applications - Navigator 中,右键单击 Applications 并从快捷菜单中选择 New Application Workspace。
2.
在 Create Application Workspace 对话框中,将 Application Name 更改为 LBSApps。Directory Name 也将随之更改。单击 OK。
您将看到创建了一个名为 Project 的项目。
3.
在 System - Navigator 中,右键单击该项目并从上下文菜单中选择 New。在 New Gallery 中,展开 Categories 下的 Web Tier。
4.
从 Categories 中选择 JavaServer Pages (JSP),然后从 Items 中选择 JSP Page。单击 OK。
5.
在 File Name 域中输入 MapAndRoute.jsp,然后单击 OK。
您将看到 MapAndRoute.jsp 的 Design 视图和 Source 视图。您还将在右侧看到组件模板、Data Controls 以及 Property Inspector。您可以选择关闭组件模板和 Property Inspector。
6.
单击 Source 选项卡,查看 MapAndRoute.jsp 的源代码。
复制以下代码并将其粘贴到代码编辑器以替换现有代码:
Welcome!!Welcome
You have requested for today's date!
Today is
. Have a great day!!
Please enter your name:
7.
右键单击 MapAndRoute.jsp 并选择 Run 来运行该 JSP 文件。
8.
您将看到该应用程序运行在默认浏览器上。在文本“Please enter your name”下面的文本域中输入您的姓名。单击 Submit Name 查看结果。
针对基于位置的服务配置 Oracle 应用服务器
您需要先在 Oracle 应用服务器上配置内容提供程序,然后才能在应用程序上使用 LBS 功能。本部分介绍如何配置 eLocation 地理编码、地图绘制以及路线选择内容提供程序。要针对基于位置的服务配置 Oracle 应用服务器,请执行以下步骤:
1.
打开浏览器,输入以下 URL:
http://.:
注意:管理端口号在服务器安装期间自动分配,可能由于您的安装会略有不同。当系统提示您输入用户名和口令时,请输入 ias_admin 和您在安装期间输入的口令。
2.
在企业管理器 10g Application Server Control 中,单击中间层实例的名称可查看实例主页。
向下滚动至 System Components 表,单击 Wireless 链接。
3.
单击 Site Administration 选项卡。
4.
展开 Component Configuration,单击 Location-Related 下的 Location Services。
5.
此时显示 Location Services 页面。转至 Location Service Configurations 部分,单击
Geocoding Configuration。
6.
为了使您的应用程序支持 LBS 地理编码功能,需要配置一个地理编码提供程序。此处,我们配置 Oracle eLocation。注意,Oracle eLocation 只能用于测试和演示目的。单击 Add Another Row,为地理编码提供程序创建一个新的空白行。输入以下信息,单击 Apply。请注意,只有在您重新启动 Wireless 服务器后,新配置才会生效。我们将在配置完所有提供程序后再重新启动。
Provider Name: eLocation
Preference: 1
Provider Implementation Class Name: oracle.panama.spatial.core.
geocoder.GeocoderImplXMLProvider
URL: http://elocation.oracle.com/elocation/lbs
Username: usr
Password: pwd
ISO Locales: ;US;unknown;
7.
单击路径式导航栏中的 Location Services,导航回到 Location Services 页面。
转至 Location Service Configurations 表,单击 Mapper Provider Configuration。
8.
为了使您的应用程序支持 LBS 地图绘制功能,需要配置一个地图绘制提供程序。此处,我们要配置 Oracle eLocation。注意,Oracle eLocation 只能用于测试和演示目的。单击 Add Another Row,为地图绘制提供程序创建一个新的空白行。输入以下信息,单击 Apply。请注意,只有在您重新启动 Wireless 服务器后,新配置才会生效。我们将在配置完所有提供程序后再重新启动。
Provider Name: eLocation
Preference: 1
Provider Implementation Class Name: oracle.panama.spatial.core.mapper.
MapperImplXMLProvider
URL: http://elocation.oracle.com/elocation/lbs
Username: usr
Password: pwd
Parameters: us_base
ISO Locales: ;US;unknown;
9.
单击路径式导航栏中的 Location Services,导航回到 Location Services 页面。
转至 Location Service Configurations 表,单击 Routing Configuration。
10.
为了使您的应用程序支持 LBS 路线选择功能,需要配置一个路线选择提供程序。此处,我们要配置 Oracle eLocation。注意,Oracle eLocation 只能用于测试和演示目的。单击 Add Another Row,为路线选择提供程序创建一个新的空白行。输入以下信息,单击 Apply。请注意,只有在您重新启动 Wireless 服务器后,新配置才会生效。我们将在配置完所有提供程序后再重新启动。
Provider Name: eLocation
Preference: 1
Provider Implementation Class Names: oracle.panama.spatial.core.router
.RouterImplXMLProvider
URL: http://elocation.oracle.com/elocation/lbs
Username: usr
Password: pwd
Parameters: us_base
ISO Locales: ;US;unknown;
11.
单击路径式导航栏中的实例,导航回到企业管理器 10g Application Server Control 主页。
重新启动 Wireless 服务器以便配置更改生效。在 System Components 表中,选中 Wireless 组件复选框,然后单击 Restart。
在系统提示您进行确认时,单击 Yes。
向 J2EE 应用程序添加基于位置的功能
要向 J2EE 应用程序添加基于位置的功能,请执行下列步骤:
1.
首先,需要在 JDeveloper 中设置库路径以包括 LBS 所使用的类。右键单击 JDeveloper 项目并选择 Project Properties。
2.
在 Development 下面单击 Libraries,然后单击右侧框中的 New 为 LBS 添加新库。
3.
在 Library Name 域中输入 Wireless。设置类路径,使其包括安装中的 wireless.jar。例如,C:\midtier_pw\wireless\lib\wireless.jar。单击 OK。
新库现在应显示在 Selected Libraries 列表中。单击 OK 关闭 Properties 窗口。
4.
在 MapAndRoute.jsp 中将以下行直接添加到 contentType 声明后面。为清晰起见,删除
标记之间的所有内容。右键单击该文件名并选择 Make,确保 MapAndRoute.jsp 编译成功。5.
在本例中,我们将创建两个位置,然后对其进行地理编码,将它们显示在地图上,并查找这两个位置之间的最佳路线。首先定义起始位置和终点位置。在 body 标记之间插入以下行。
// Create the source location object
Location fromLoc = SpatialManager.createLocation(
null, //point
"OracleHQ", //companyName
"http://www.oracle.com/technology/obe/obe_as_1012/wireless/location/index.html", //houseNumber
new String[] { "500 Oracle Parkway" }, //intersectingStreetNames
null, //secondLine
"Redwood City", //cityName
"CA", //stateName
"94065", //postalCode
null, //postalCodeExt
"US"); //countryName
// Create the destination location object
Location toLoc = SpatialManager.createLocation(
null, //point
"Hotel", //companyName
"http://www.oracle.com/technology/obe/obe_as_1012/wireless/location/index.html", //houseNumber
new String[] { "3000 Los Prados St" }, //intersectingStreetNames
null, //secondLine
"San Mateo", //cityName
"CA", //stateName
"9440", //postalCode
null, //postalCodeExt
"US"); //countryName
%>
6.
现在测试地理编码程序。将以下行直接插入地址声明后面。
// Get the geocoder
Geocoder geocoder = SpatialManager.getGeocoder();
// Geocode the locations
L cation[] geocodedStart = geocoder.geocodeAddress(fromLoc,Geocoder.MATCH_MODE_TIGHT);
Location[] geocodedEnd = geocoder.geocodeAddress(toLoc,Geocoder.MATCH_MODE_TIGHT);
%>
You are located at:
Latitude:
Longitude:
You want to get to:
Latitude:
Longitude:
7.
编译代码。为了快速部署,在以下文件夹中复制并粘贴 MapAndRoute.jsp:
\j2ee\OC4J_Wireless\applications\wireless\location-web
Access the application with the URL http://.:/location/MapAndRoute.jsp
8.
现在地图绘制程序。将以下行直接插入地理编码程序测试后面。
// Get the mapper
Mapper mapper = SpatialManager.getMapper();
// Get the map URLs
String startMapURL = mapper.getMapURL(fromLoc, ImageFormats.GIF, 400, 200, false);
String endMapURL = mapper.getMapURL(toLoc, ImageFormats.GIF, 400, 200, false);
%>
Here is your start location:
>
Here is your destination location:
>
9.
编译代码。在以下文件夹中复制并粘贴经过修改的 MapAndRoute.jsp:
\j2ee\OC4J_Wireless\applications\wireless\location-web
刷新步骤 7 中使用的应用程序浏览器窗口。eLocation-mapping 提供程序已生成了给定地址的地图。
10.
现在测试路线选择程序。将以下行插入地图程序测试的末尾。
// Get the router
Router router = SpatialManager.getRouter();
// Basic routing settings: return mapURL, don't return route geometry
RoutingSettings settings = new RoutingSettings(true, false);
settings.setSecondaryOption(RoutingOption.overviewMapWidth, "500");
settings.setSecondaryOption(RoutingOption.overviewMapHeight, "300");
// Compute the route
RoutingResult rres = router.computeRoute(fromLoc, toLoc, null, settings, Locale.US);
%>
Here are your driving directions:
for (int i=0; i
{
%>
}
%>
%>
11.
编译代码。在以下文件夹中复制并粘贴修改的 MapAndRoute.jsp:
\j2ee\OC4J_Wireless\applications\wireless\location-web
刷新应用程序浏览器窗口。eLocation 路线选择提供程序已生成了行驶方向和请求路线的全景地图。单击此处获取整个 LBS 示例。
总结
在本课程中,您学习了如何:
使用 JDeveloper 创建简单的 JSP 页面
针对基于位置的服务配置 Oracle 应用服务器
修改 JSP 页面以添加以下基于位置的功能:
创建出发地点和目的地
对位置进行地理编码
显示位置的地图
显示到目的地的行驶方向
将应用程序 (JSP) 部署到应用服务器
运行应用程序以测试基于位置的服务
相关信息
有关本 OBE 教程的问题,请在 OBE 论坛上张贴问题。
将鼠标置于该图标上可以隐藏所有的屏幕截图。
版权所有 © 2004 Oracle Corporation。保留所有权利。