谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作

Posted

技术标签:

【中文标题】谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作【英文标题】:Google geocoding api not working in android phones while it is working in system with Ripple in Apache Cordova 【发布时间】:2016-03-05 06:31:32 【问题描述】:

我开发了一个基于邮政编码的天气查找器测试应用。 不幸的是,在使用 google geocoding api 时,我无法在 android 手机上获得 json 结果集。当使用 Ripple 移动模拟器进行测试时,它在我的系统上运行良好。我使用以下 api 来根据位置的邮政编码/密码找出纬度和经度。

Link

请给我推荐一个合适的api,我可以通过它从某个区域的pin码中获取Json格式的经纬度。

这是我编写的代码,用于根据邮政编码/密码呈现天气。

function getWeather() 
    var zipcode = $('#input-box').val();

    var qs = "http://maps.googleapis.com/maps/api/geocode/json?address=" + zipcode + "&sensor=true";

    var lat = '';
    var lng = '';

    $.getJSON(qs, function (results) 
        lat = results.results[0].geometry.location.lat;
        lng = results.results[0].geometry.location.lng;

        var queryString = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lng + "&appid=2de143494c0b295cca9337e1e96b00e0";

        $.getJSON(queryString, function (res, status) 
            $('#temp').text(res.main.temp - 273.15);
            $('#description').text(res.weather[0].description + " in " + res.name);
        );
    );

仅供参考,我在上述脚本中进行了两个 api 调用(谷歌地理编码 api 和开放天气 api),并且控制甚至没有进入 getJSON。

这是查看源代码时的控制台列表。

enter image description here

【问题讨论】:

这就是我构建查询字符串以从邮政编码中获取纬度和经度的方式。 maps.googleapis.com/maps/api/geocode/… 【参考方案1】:

请查看cordova-plugin-whitelist。我认为您必须允许您的应用请求外部 URL。

转到您的项目根文件夹并安装插件:

cordova plugins install cordova-plugin-whitelist

然后把这个放到你config.xml的android平台标签之间:

<platform name="android">
  <!-- Don't block any requests -->
  <access origin="*" />

  <!-- other stuff -->
</platform>

别忘了重建你的目标:

cordova build android

【讨论】:

你好节拍。感谢您的答复。不幸的是,它仍然无法正常工作。正如您所说,我已经进行了必要的更改并重建了应用程序。它在我的系统上运行,而不是在我的安卓手机上运行。 是的。错误很少。加载资源失败:服务器响应状态为 404(未找到)(匿名函数)@ripple.js:50ipple.js:37 cordova :: Initialization Finished (Make it so.) 嗨,Beat,我在问题中添加了屏幕截图。 但是你的问题出在设备上,那些错误呢? 我在波纹模拟器中看到了这些错误。实际设备上没有错误。控件甚至没有进入我试图更改标题文本以检查结果的 $getJSON(...) 函数。

以上是关于谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地理编码 API 不如使用地址的谷歌地图准确

谷歌地图地理编码器 API 的承诺

如何在信息窗口中显示我的地理编码地址?谷歌地图 API

谷歌地理编码 API 错误消息“不推荐使用无密钥访问谷歌地图平台......”

谷歌地理编码 API 没有返回社区作为响应

如何在 PHP 中对谷歌地理编码 api 进行批量纬度/经度查找?