我正在为 iOS 构建一个位置应用程序。我目前有一个搜索栏,可用于搜索本地企业(例如披萨、加油站、银行)。搜索栏文本作为参数添加到 URL 并馈送到 Yahoo Local API。我也想使用相同的搜索栏来查找特定地址,但这不是 API 的功能。 我想我必须:
A) 构建一些可以区分广泛的商业搜索和特定位置搜索的功能。 将业务查询发送到 API 并将地址搜索发送到 CLGeocoder。
B) 寻找更通用的 API。
C) 做一些我还没有考虑过的其他事情。
我可以添加一个单独的搜索字段并将其用于地址搜索,但我想知道是否可以从同一个搜索栏执行此操作。 如果有人可以提供任何建议或指出我正确的方向,我将不胜感激。 谢谢。
您可能很难执行 A,因为地址和 POI 是非常自由格式的字符串,尤其是当它们是人类生成的字符串时。我宁愿建议添加某种用户可以切换的开关,以便搜索企业或地址。
对于 B,您可能需要查看 Google 地图 api,如果它满足您的需求。对于输入参数来说,这似乎非常通用。
+1 提出一个有趣的问题。这绝对是一个编程设计问题,但也几乎是一个用户体验问题。
我认为你可以在一个领域完成这一切。我在 SmartyStreets 工作,我们解析和处理地址。以下是我从经验中学到的一些与您的问题相关的知识:
举个例子:用户在该文本字段中输入 POI 或地址。您不确定是哪一个还是两者兼而有之。如果您“确实”知道,POI 或地址是否存在?我不知道有哪个(便宜的)API 可以同时执行这两种操作——我见过企业级的 API,但是……可能成本太高了。这是我会尝试的一种更简单的方法。
(主页上有不同的演示)就是这样一种服务(价格便宜,甚至对于低流量使用是免费的)。虽然 API 不直接解析单行地址,但使用这个算法(这里有一个工作示例)真的很容易——在 Objective C 中甚至更容易,因为你不必搞乱JSONP 就像在 Javascript 中一样。
地址。因此,如果 LiveAddress 返回结果(通常是第一个,使用上述算法),则该字符串肯定是一个地址,或者是一个 POI 后跟一个地址。 (是的,LiveAddress 将对每个地址进行地理编码。)
希望能为您指明正确的方向(无双关语)。如果您想澄清任何事情或有任何其他与地址相关的问题,请告诉我。