2011-11-26 46 views
1

我想知道在B4A中是否有办法获取邮政地址的地理编码,然后为其分配唯一的编号。如果可以这样做,请告诉我需要获取地理编码和唯一编号的编码。B4A可以获取地理编码信息吗?

我认为它需要走出去一个网站,并从那里获取地理编码或以某种方式使用Google地图API。

谢谢。

回答

3

获得坐标后,调用Google Geocoding API Web服务。

您需要传递参数latlng(纬度/经度)和sensor = true来接收结果。其它参数可以包括一旦你得到一个JSON响应来筛选结果(http://code.google.com/apis/maps/documentation/geocoding/#GeocodingRequests)

一个例子通话将http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true

您可以使用B4A JSON库来提取您需要的数据

+0

感谢James的回应,我点击链接并查看返回的结果,但找不到代表单个唯一编号的内容。当我使用地理编码调用它时,我将使用它来获取地址。如果我给他们一个邮寄地址,是否可以调用maps.googleapis.com并要求它返回一个数字? –

+0

你的意思是街道号码中的单个号码吗?或者你的意思是描述每个位置的唯一编号?由于地点数量无限,我认为这样的数字不会存在。如果您需要每个位置的唯一值,我建议使用经纬度作为ID – jb11

+0

每个邮政地址都有它自己的纬度和经度。我正在寻找将经纬度或单个邮政地址转换为单个数字。这样我可以对数据库表中的所有地址进行排序。有没有办法调用Google地理编码来返回该类型的号码? –

0

如果您在数据库表中对它们进行排序,我会建议有一个额外的列为AUTO INCREMENT并将其用作主键。当您插入每个邮政地址时,您将获得一个匹配的唯一ID。

问题当然是唯一的id本身没有意义。所以除非你想按照订单排序记录被插入,否则我不会看到这个数字有什么好的排序方式,但我不知道你在做什么。

+0

随着时间的推移,现在有一个本地java库供B4A使用,可以通过论坛看到https://www.b4x.com/android/forum/threads/geocoder-library.17115/ – JJohn

0

此问题的唯一解决方案是将LatLon数字连接在一起作为字符串。 您可以通过多种方式压缩非常非常长的结果..您可以将字符串 转换为数字,然后将该数字转换为十六进制,以便您可以获得更短的行。

+0

欢迎使用StackOverflow。在试图帮助OP时,问问自己你添加了多少价值。你能更清楚简洁吗?你能添加细节吗?你能更好地设计你的信息吗?简要地讲述了一些非常重要的问题,就好像它们明显而简单一样。 –

相关问题