使用J2ME进行反向地理编码

3

我的项目运行在J2ME上,需要获取用户当前的街道地址。我可以使用基于位置的服务获取用户坐标,但是如何获取街道地址呢?

我知道Google地图可以进行反向地理编码。但是我如何将其链接到我的应用程序中呢?是否会有任何法律问题?

非常感谢您的任何指导。谢谢!

Kevin

3个回答

2
Java ME实际上作为JSR 293位置API 2.0的一部分标准化了本地反向地理编码: http://www.j2megame.org/j2meapi/JSR_293_Location_API_2_0/index.html?javax/microedition/location/services/GeocodingServiceProvider.html 以下论文中的“4.2.2.地理编码”一节描述了Java ME中使用位置API 2.0进行反向地理编码: http://www.locationaware.usf.edu/wp-content/uploads/2011/09/Barbeau-Location-API-2.0-for-J2ME-COMCOM3573.pdf 然而,目前JSR 293在商用Java ME手机中并没有被广泛实现,至少在美国可用的手机中大多数仍然实现JSR179位置API 1.0。

1

在J2ME应用程序中使用Google Maps存在法律问题。Google Maps API只能从浏览器内部使用。

请参见此页面上的10.8:http://code.google.com/apis/maps/terms.html

Google Maps还限制每个IP地址下载唯一地图的数量。通常对于任何基于PC的应用程序来说,这已经足够好了。但是,在移动设备上,许多设备将通过代理Web服务进行访问,因此许多设备具有相同的IP地址。因此,限制很快就会达到。

Yahoo Maps在其条款和条件中没有此类限制,并且每个IP地址的限制更高。他们还标记某些IP地址为代理服务器,因此它们不计入限制。我们已经商业化使用了它。

至于反向地理编码,有GeoNames Web服务,但我个人尚未使用过。


嗨Wex, 感谢您的回复。关于您的URL,我之前已经浏览过了。问题是,该网络服务并没有为我的国家提供邮政编码。顺便说一下,我来自新加坡...至于你的雅虎地图??所以雅虎也有类似于谷歌地图的东西吗?即反向地理编码.. - Nivek
我们还没有在商业上进行逆地理编码;只是在研发阶段进行了尝试。我们的一个可靠方法是在应用程序中拥有一个包含所有邮政编码及其区域覆盖范围的数据库。通过一些智能的查询调用(点在多边形内),它能够正常工作...但这个数据集很庞大(我们当时是在英国进行)。另外,运行自己的服务器也可以完成这项工作,并且可以更新数据集而不必更新应用程序。一切取决于您的最终目标是什么。 - Wex

1

这是一个晚回复,但我实际上也在寻找同样的东西,现在我终于做到了。

你需要做的:

  • 通过在J2ME上打开HTTP连接向Google服务器发送请求,然后您将根据您请求的HTTP链接从Google获取XML或JSON响应。
  • 解析此响应以从XML或JSON文档中检索位置。
    • 对于XML,我建议使用kXML 1.2解析器
    • 对于JSON解析,使用json.org解析器。

如果您仍然卡在这个阶段,请给我发电子邮件,因为我已经度过了那个阶段:)。 我的邮箱是prateek.football@gmail.com


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接