我正在建立一种服务,人们可以基本上根据位置查找列表。该服务是在德国提供的,而且那里的位置似乎有些棘手。
那么当前设置如何?
对于每个列表,我都使用nominatim数据存储类似的地址。地址数据基于zipCodes。因此,我收到了zipCodes,并从中存储了该地址对象:
address: {
suburb: "Neukölln",
city_district: "Neukölln",
city: "Berlin",
state: "Berlin",
postcode: "12053",
country: "Deutschland",
country_code: "de",
lat: "52.4775104",
lon: "13.4322809163976",
displayName: "Neukölln, Berlin, 12053, Deutschland"
},
然后,前端用户使用基于komoot api的autosuggest,从而为我提供以下格式的内容:
city: "Berlin"
country: "Deutschland"
name: "Berlin"
osm_id: 240109189
osm_key: "place"
osm_type: "N"
osm_value: "city"
postcode: "10117"
state: "Berlin"
如您所见,我现在可以使用osm_value和name搜索。所以我要搜索city:Berlin。
从理论上讲,这很好。但是对于像柏林nominatim和komoot这样的大城市来说,结果却很糟糕。通常,与nomnatim的城市甚至连一个city_district都很难得到。 (请参见此问题:https://github.com/openstreetmap/Nominatim/issues/1487)
我的问题是:一个合适的数据结构看起来如何,您有一个更好的构想吗?付费服务很好-我只是找不到一个合适的服务(除了非常昂贵的gmap)。
要求是: 搜索邮政编码,城市,城市区,村庄,镇,县
每月大约有30万个地理编码