{
"results" : [],
"status" : "ZERO_RESULTS"
}
{
"results" : [ *********** ],
"status" : "OK"
}
这种行为的原因是什么? 搜索字符串'100 Main St,Atlanta,GA'在maps.google.com
中运行良好答案 0 :(得分:1)
这里有两个问题。
第一。你问的是一个不存在的地址;这将极大地影响api为您匹配结果的能力。
第二。正如评论中提到的那样,“st”有一些含糊之处等。
最终,您的查询将与结果中的每个条目都有一些“相关性得分”,并且只会给出高于某个内部阈值的结果。
此匹配阈值受上述两个问题的影响。
100 Main St,Atlanta,GA不是真实的,并且没有解决到某个位置。据我所知,它甚至不适用于maps.google.com
当匹配位置(真实与否)时,您输入的文本将很重要。 例如你得到结果的第二个例子实际上是在乔治亚州的Forest Hills。 而且无论出于什么原因,这都是b / c,缺少“st”可以让它匹配得足以让谷歌尽可能地提出建议。使用“st”或“street”,分辨率阈值不是很好,而且你得到的结果为“零结果”。
使用一个真实的地址,比如说:546 main st,你会注意到'','st','street'仍然很重要(它仍会影响匹配的阈值),但不那么重要。
以下是一些例子:
curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
"formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",
curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main+st,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
"formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",
curl -s 'http://maps.googleapis.com/maps/api/geocode/json?address=546+main+street,+Atlanta,+GA&sensor=false' | grep formatted | grep 546
"formatted_address" : "546 Main Street Northeast, Atlanta, GA 30324, USA",
现在,结果的顺序和多样性确实有所不同,如果你放弃“| grep”的东西,你可以很容易地观察到,但你可以清楚地看到,在所有情况下,对于这个特定地址,你将获得可行的结果。 对于“每个”真实地址,这可能不是真的,但我认为你可以合理地期望得到一个可行的结果,如果你在一个真正的地址之后,文字不是过于模糊,正如上面的评论所说的那样