65.9K
CodeProject 正在变化。 阅读更多。
Home

基于位置的竞争分析系统

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.78/5 (19投票s)

2004 年 6 月 2 日

CPOL

6分钟阅读

viewsIcon

70368

downloadIcon

427

一款用于基于位置的竞争分析的 Pocket PC 应用。

摘要

这更像是一篇关于概念的文章,而不仅仅是一个 Pocket PC 应用程序。它基于位置信息。我正在尝试实现一个系统,该系统将电子商务应用程序用于基于位置的应用。它基本上是将基于位置的应用和竞争分析联系起来。我感到惊讶的是,到目前为止还没有公司考虑实现这样的系统。

这个系统有什么新功能?

该系统允许基于位置的系统根据竞争分析和情报决策为您提供正确的信息。

示例

当您在高速公路上行驶时,它会告诉您汽油价格。当您从一个区域驾驶到另一个区域时,价格会发生变化。

系统设计

该系统使用三层架构开发。它包含三个层。

  1. 数据库层:这一层是简单的 XML 文件或 Web 服务。
  2. 数据处理层(Web 服务):这一层与数据库交互,并根据位置和用户偏好向用户返回相应的信息。它包含一系列 Web 服务,用于从数据库服务器获取信息。
  3. 用户界面:这一层与 Web 服务器上的 Web 服务交互,并根据用户设备显示数据。我实现了基于 Pocket PC 的应用程序。
    • 基于 Pocket PC 的应用程序。

系统如何工作

  1. 用户发送关于某个信息的需求。
  2. 使用您的 GPS 设备,我们会检测到您的位置。
  3. 该位置发送到服务器,服务器将其转换为有效位置。
  4. 该有效位置被传递给用户请求的 Web 服务。
  5. Web 服务查找相应的信息。
  6. 该信息发送回用户。
  7. 用户设备根据设备类型显示该信息。

实施此系统时遇到的问题:

1. 如何获取每个位置的数据

这个系统最大的问题是如何从每个位置获取数据。如果不是这样,那么市场上已经有数百万个应用程序了。我不得不假设有许多网站遵循相同的数据标准,于是我创建了一个网络爬虫程序,它定期访问这些网站,不断更新主数据库服务器。

2. 用户如何根据当前位置获取信息

最简单的方法是用户输入邮政编码,服务器会为您查找信息。Weather.com 就是这样做的。但大多数时候用户不知道自己的位置,所以我们不能使用这种方法。

我假设用户拥有 GPS 设备,因此我们可以获取位置,并且我们的服务器有一个 Web 服务,该服务获取该位置并将其解释为数据库服务器可以理解的有效位置。一旦获得了位置,获取信息就轻而易举了。

需求分析

本项目旨在开发一个系统,允许移动用户(Pocket PC 或笔记本电脑)根据位置和竞争分析获取信息。竞争分析在这里很重要,因为有许多服务提供基于位置的信息,但没有一个能向用户提供竞争分析信息。

例如,当您去一个陌生的城市时,您可能对加油站感兴趣,如果它能告诉您汽油价格,那不是很好吗?另一个例子是,如果您正在寻找酒店房间。您可以通过手机询问该地区酒店的最佳房价,或者酒店房间是否有任何优惠,然后您的手机会搜索附近所有酒店并为您找到最佳结果。

这似乎非常有趣且并非不可能实现,尤其是在我们拥有如此多新技术的情况下。我使用了 ASP.NET 2003、C# 和 Compact .NET Framework 来实现这个系统。我创建了三个不同的客户端:一个 Windows 应用程序、一个 Web 应用程序和一个 Pocket PC 应用程序,它们都通过 XML Web 服务接口从同一个数据库获取数据。我还创建了一个更新服务器应用程序,允许超级用户修改数据。

智能决策

当您开发 Pocket PC / 手机应用程序时,我们无法向用户询问太多输入。我在这里描述的是一个优化路线的应用程序。

问题:Tom 正在从马萨诸塞州波士顿开车前往纽约州纽约市。有大量的 GPS 应用程序可以为他提供逐向导航。这是静态信息,现在,如果在 84 号出口发生事故,并且 5 号出口到 8 号出口之间的交通非常拥堵。如果他的 PDA 已连接互联网并订阅了交通通知 Web 服务,他将收到基于位置的通知,因此他可以走小路,并在 8 号出口后重新汇入高速公路。这是一个很好的设计,但我想指出几个问题。

  • 如果他不熟悉那个区域,他将如何走小路?
  • 地图软件将显示高速公路(仅静态信息)。
  • 即使地图软件足够灵活。当他在开车时,在小型 PDA 上输入这些信息对他来说仍然很痛苦。

我们的方法是这样的。

  • 一旦 PDA 收到关于交通拥堵的通知,并且知道司机的目的地,它就会检查该拥堵是否在用户的路线上。
  • 如果它在用户路线上,它会自动调用一个新的 Web 服务器来获取优化路线。
  • Web 服务器将负责根据用户的偏好实时计算优化路线。
  • 大多数司机想节省时间,因此 Web 服务可以根据时间成本计算出哪条路线(高速公路或街道)对他来说更好。

这种方案可能还有许多其他改进之处。我只是在这里提出这个想法,因为现在我们拥有实现此类解决方案的所有合适工具。

项目架构

框图

开发原型应用程序 - 个人助理

  • 提供基于位置上下文的信息。
  • 对本地服务有用,例如查找餐厅、便宜的汽油、交通更新,并且可以扩展到更多服务
  • 基于浏览器的 UI (HTML/WML/XML)
  • 通过 XML 消息通信,XML 消息在各处使用。
  • 模拟位置上下文的感知。
  • 通过 Web 服务器在每次位置更改时将位置上下文发送到服务器。
  • 服务器将请求传递给一个能感知位置的映射服务,该服务返回一个抽象位置。
  • 服务器然后使用抽象位置从上下文数据库中检索上下文信息。
  • 服务器然后将结果传递给 Web 服务器,Web 服务器将结果格式化为适当的表示形式并传递给客户端设备。

这是 Pocket PC 应用程序的三个截图。图 1 使用 XML 数据文件。我试图在此展示概念。这些 XML 文件可以用真实的 Web 服务替换,如图 3 所示。您可以在其中输入邮政编码,然后调用 Web 服务(http://www.xmethods.net/sd/2001/TemperatureService.wsdl),获取该城市的气温。

图 2(地图选项卡)仅仅是一张图片。

这是我调用 Web 服务的代码。

protected PocketPC.net.xmethods.www.TemperatureService tempServer = 
  new PocketPC.net.xmethods.www.TemperatureService();

private void Submit_Click(object sender, System.EventArgs e)
{
   try
   {
      txtTempe.Text = tempServer.getTemp(txtZipcode.Text).ToString();
   }
   catch(Exception ex)
   {
   }
}

结论

我分享了对这类系统的看法,如果您有任何反馈或建议,请通过电子邮件发送给我:shailsrivastav@hotmail.com

© . All rights reserved.