Google地理编码返回零结果,Unity3D

时间:2015-04-03 10:27:15

标签: google-maps unity3d google-geocoder

我正在尝试连接谷歌地图api并获得大量/长期的地方,但无论我想要获得什么,我每次都会收到ZERO_RESULTS。例如,如果我输入 http://maps.googleapis.com/maps/api/geocode/json?address=Moscow+Tverskaya+18进入浏览器,它给了我正确的结果,但如果我试图通过WWW类从统一发送完全相同的字符串,我得到零结果。

  IEnumerator GetGoogleCoords() {
    var url = "http://maps.googleapis.com/maps/api/geocode/json?";
    var qs = "";
  // qs += "address=" + savedAddress;
    qs += "address=Moscow +Tverskaya+18";
    var req = new WWW(url + "?" + qs);
    Debug.Log(url + qs);
    yield return req;
    Debug.Log(req.text);

}

我尝试了每个请求和每个订单

1 个答案:

答案 0 :(得分:0)

你有一个额外的“?”你的网址是@Engerlost说的。

这篇文章是关于如何防止再次犯同样的错误。

最佳编程实践是在WWW构造函数中构建完整的URL,但是在单独的行中。

var url = "http://maps.googleapis.com/maps/api/geocode/json?";
var qs = "address=Moscow +Tverskaya+18";
var fullUrl = url + "?" + qs
var request = new WWW(fullUrl);

也就是说,一行应该只包含一个作业。这使得管理代码变得更加容易。在您的情况下,调试变得更加容易,并且看到构建完整URL的错误。现在,如果您对作为参数进入WWW的最终URL感到怀疑,您可以轻松添加Debug.Log

Debug.Log("Request url: " + fullUrl);

你会很容易看到生成的网址包含两个“?”字符。