繁体   English   中英

Rails 5-Geocoder Gem,使用多个参数进行搜索

[英]Rails 5 - Geocoder Gem, Search with Multiple Parameters

我目前正在使用此地理编码器宝石作为导轨。

目前,用户在我的网站上输入了他们的(6位数字)邮政编码,然后,我将通过在地址解析器上搜索来生成他们的街道名称,如下所示:

results = Geocoder.search(their_postal_code)
# handle results to get the street name

这对于大多数邮政编码来说都可以正常工作。 但是,对于某些邮政编码,它不会返回所需的国家(在这种情况下为新加坡)。

地理编码器网站未指定使用多个参数进行Geocoder.search的方式。

github网站上 ,我遇到的唯一一个是:

# with Google:
Geocoder.search("Paris", :bounds => [[32.1,-95.9], [33.9,-94.3]])

这导致我尝试了这样的变体:

Geocoder.search("123456", country: "SG")
Geocoder.search("123456", country: "Singapore")
Geocoder.search("SG", postal_code: "123456")
Geocoder.search("Singapore", postal_code: "123456")

这些似乎都不起作用。 我将如何搜索邮政编码并指定国家/地区?

我终于找到了我认为应该是解决我问题的正确答案。 我还没有办法复制它(使用不同的地址),因为我无法找出“错误的”地址并对其进行测试。 无论如何,这是解决方案:

根据Google的地址解析文档 ,可以使用多种方法对位置进行地址解析。 其中之一是通过Component Filtering ,这是我们应该关注的一种。

现在,我不能绝对确定这是否是正确的解决方案,因为再次,我无法用任何其他答案进行测试。 但这是有效的:

Geocoder.search(" input your component:value pairs and separate with a | ")

因此,它将类似于:

Geocoder.search("postal_code: 123456 | country: Singapore")

请注意,按照谷歌的文档,管道| AND函数,而不是OR函数。 希望这能解决别人的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM