我已经为此奋斗了一段时间,所以希望有人可以帮助我。我愿意接受任何和所有建议。
当我查询时QGeoAddress::street()
,我(可能)会收到街道号码和街道名称。我想只获得街道名称。
例子:
King St W -> King St W
99 King St W -> King St W
99a King St W -> King St W ...
1st St -> 1st St
99 1st St -> 1st St
99a 1st St -> 1st St ...
315 W. 42nd -> W. 42nd
42 St. Paul Drive -> St. Paul Drive
我需要这样做,以便可以通过最近的街道名称比较两个单独设备的位置。如果设备位于“99 King St W”,则它与“113 King St W”或“113a King St W”位于同一条街道上。
就目前而言,我不认为正则表达式是一个好的、可靠的解决方案,因为要强加的规则太多,而且街道名称的可变性对我不利。从理论上讲,可能有一条名为“1 St”的街道,它将无法通过正则表达式规范化“1 1st St”。
编写我自己的模糊匹配器可能会提供更好的结果,但对于较短的街道名称可能会失败。
我还考虑过查询 REST Web 服务,但是许多免费服务对每天的请求有限制,或者请求之间的最短时间会导致该方法过于昂贵。
就像我说的,我很想听听你们能想出什么。
非常感激 :)