2011-11-29 59 views
0

我正在开发一个具有邮政地址路由的Android应用程序。需要按顺序对数据库表中的邮政地址进行排序

我们希望按照每种地址都可以打印出来用于驱动程序的方式对数据库表中的每个地址进行排序。我们不希望花费时间对数据库表格进行排序,因为这是理想的选择。

我在想方设法在表中创建一个数字的主键,我们可以很容易地按升序排序。这可以很容易地为驾驶员创建清单。

我一直在研究,发现有一种叫做WOEID(我认为代表一个地区的ID),但我不确定它对我们是否有好处,因为2个邮政地址在同一个社区可以使用相同的WOEID。

例如这3个地址具有相同的WOEID:

100 Bowden St., Lowell, MA 
131 Stedman St., Lowell, MA 
50 Stromquest Ave., Lowell, MA 

使用像WOEID一个数字的概念是非常适合我们,但我们需要的,所以我们知道哪些是像这些地址,以便进行排序彼此最接近。

也许有一个网站,我们可以用它来发送一个请求,从我们的应用程序提供他们的邮政地址,该网站将返回一个单一的数字代表该地址的格式,我们的应用程序可以解析。

也许有一种方法可以将地理编码或将纬度和经度数字转换为我们可以使用的单个数字。

谢谢。

回答

0

我发现了一个网站,允许我做一个反向地理编码。它返回一个纬度和经度。

我尝试了一下,发现我可以一起添加经度和纬度来获得单个数字。既然给网站一个确切的地址,结果将不完全是我要找的结果,我只是给它一个街道,城市和美国的州定位。然后,我可以使用返回的经度和纬度,然后按数字升序对房屋地址进行排序。

例如,我们有许多非常像网格的街道,因此经纬度的增加代表1个特定街道上的许多家庭。在另一条街外,我做了同样的事情。现在我所要做的只是列出数据库表中的所有内容,如下所示: 城市通过下拉列表选择,美国州也通过下拉列表选择,然后是每条街道的地理编号,然后是家庭号码。

这里是网站我用来获取地理编码与样品街道地址一起:

http://where.yahooapis.com/geocode?q=stedman+st,+lowell,+ma 
0

因此,当多个地址共享相同的WOEID时会出现问题?我不知道有多少资源可用,但是不知道将这些数据提供给Google Maps等某些API并计算从您的位置到那里的距离?

如果你想避免谷歌一个真正的基本方法可能是自己做计算。 (虽然这将是更大的估计。)

但是我的感觉你想找到超过总距离的最佳途径,所以我认为你的问题,也关系到travelling salesman problem

给出一个列表的城市和他们的成对距离,任务是到 找到一次访问每个城市的最短可能的游览。

+0

是的,这就是我们正在尝试做的。我曾经为一家为Paratransit行业做过路由的公司工作,但他们不会让我们知道他们用来将地址转换成他们在数据库表中使用的单一号码的秘密。由于我是所有这些的初学者,你能告诉我如何获得这些信息,也许可以带我去看一个教程吗? –

相关问题