【发布时间】:2016-12-28 15:11:17
【问题描述】:
我查看了其他几个似乎有些相关的 SO 问题,但不是我需要的(或者我只是不够聪明,无法连接这些点)。
为客户开发应用程序。他们的数据库包含旅行人员的出发地和目的地,仅限于(我相信)美国和加拿大的地方,以及旅行的日期。记录会定期更新。将这些称为“旅行”。
用户来到该站点,并输入出发地和目的地城市,以及每个城市的半径,表明他们愿意前往距离他们想要的出发地/目的地城市多远以便旅行。
该应用的工作是查找数据库中已有的任何/所有行程,这些行程最接近用户需要旅行的起点和目的地。
我最初的想法是在数据库中查找用户所需起点半径内的所有起点城市,然后使用该记录集在数据库中搜索目标城市以查找用户所需半径内的任何/所有城市目的地。
我还需要一个像样的(最好是免费的……这里是低预算项目)API,它可以帮助查找城市地理位置并执行实际的半径计算……我想。
我想要做的事情是否接近最佳选择?看起来最困难的部分将是在数据库中查找用户所需城市半径内的所有现有城市 - 这与更简单的查询“查找 X 半径内的所有城市”有点不同城市”。
所以,这有点像优步的情况,除了优步司机决定行程参数是什么,用户只需要知道哪些优步司机从/到离用户最近的地方(在指定日期,开机)。
目前,用户只是在州一级(从 BC 到 NY)查找信息,并读取查看游乐设施的数据行,以找到最接近他们需要的游乐设施。
提前感谢各位聪明人可能有的任何聪明的见解!
【问题讨论】:
-
在进一步考虑这一点时,我认为将城市简单地转换为邮政编码是可以接受的,而不是尝试进行实际的地理计算。查找指定邮政编码距离内的所有邮政编码相当容易。只需要一个可以处理美国和加拿大邮政编码的 API....
-
只是为了您的考虑,N英里的半径可以作为您的初始过滤器,但行驶时间/距离应该是第二个过滤器。例如,像乌鸦一样,我离沃里克只有 2 英里,但由于纳拉甘西特湾,它几乎是 25 英里。 Google API 将是一个很好的起点。根据数量,您可能需要支付扩展服务协议的费用……费用是象征性的
-
哇,约翰,感谢您的快速回复!感谢您的建议。我现在正在寻找有关此类功能的 Google API 成本的信息,但如果您有一个链接,那就太好了。 =)
-
否,但您可以下载整个数据库。一个免费下载是federalgovernmentzipcodes.uszipcodeapi.comzipcodedownload.com(我使用这个..每季度更新一次......是的,他们确实改变了。在这里查看我的答案stackoverflow.com/questions/41268902/…
标签: sql-server api coldfusion latitude-longitude geography