Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ngCordova getCurrentLocation导致谷歌地图空白_Angularjs_Cordova_Ionic Framework_Google Geolocation - Fatal编程技术网

Angularjs ngCordova getCurrentLocation导致谷歌地图空白

Angularjs ngCordova getCurrentLocation导致谷歌地图空白,angularjs,cordova,ionic-framework,google-geolocation,Angularjs,Cordova,Ionic Framework,Google Geolocation,我知道有很多支持论坛,但似乎没有人完全知道我在寻找的答案。下面是我的场景(我在爱奥尼亚框架中开发) 我正在使用ngCordova cordova插件地理位置获取我的当前位置(这很好): 我已通过上述代码验证vars lat、lng的填充值是否正确。所以,下一步我要做的是显示我的谷歌地图,我通过下面的initMap函数来实现: function initMap(origin){ var mapOptions = { center: origin, zoom: 16, }; $scope.m

我知道有很多支持论坛,但似乎没有人完全知道我在寻找的答案。下面是我的场景(我在爱奥尼亚框架中开发)

我正在使用ngCordova cordova插件地理位置获取我的当前位置(这很好):

我已通过上述代码验证vars lat、lng的填充值是否正确。所以,下一步我要做的是显示我的谷歌地图,我通过下面的initMap函数来实现:

function initMap(origin){
var mapOptions = {
  center: origin,
  zoom: 16,
};
$scope.map=new google.maps.Map(document.getElementById("map"),mapOptions);}
当我试图渲染此图像时,我只收到一个空白屏幕。另外,我还有“ionic.Platform.ready(initialize);”在我的控制器代码中

注意:下面是我的html模板中的代码段:

<div id="map" ng-controller="MapCtrl">
</div>

一些失败的编码尝试包括:

  • 使用ng-init()而不是ionic.Platform.ready-相同的空白图像
  • 使所有功能失效(绝望的尝试)-相同的空白图像
  • 在以下情况下成功:

    我直接使用latlong google对象调用initMap,完全绕过嵌套在initialize()函数中的“getCurrentPosition”操作


    任何建议都将受到赞赏。

    因此,我最初的逻辑问题是执行getCurrentPosition是一个异步调用,这意味着它将在DOM完全加载后接收数据。因此,为了解决这个问题,我使用$q.defer()创建了一个promise对象,以便以后访问。有关如何做到这一点的更多信息,请访问我发布到的另一个论坛:


    祝你好运和快乐

    这应该对你有帮助这是我使用过的链接之一…这对我没有帮助,因为$cordovaGeolocation.getCurrentPosition()在这个例子中没有使用。如果不使用getCurrentPosition()函数,我可以实现这一点。仅供参考,我已将此问题更详细地发布到另一个论坛:你是否解决了这个问题?我今天早上才发现……它需要使用$q.defer来承诺获取数据并异步返回数据。如果你感兴趣的话,我会把这个作为答案贴在这里!
    <div id="map" ng-controller="MapCtrl">
    </div>