ngCordova getCurrentLocation 导致空白 google 地图
ngCordova getCurrentLocation causes blank google map
我知道有很多支持论坛,但似乎没有人完全知道我正在寻找的答案。所以,详细来说,下面是我的场景(我在离子框架中开发)。
我正在使用 ngCordova cordova-plugin-geolocation 获取我的当前位置(这很好用):
function initialize(){
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function(pos){
var lat=pos.coords.latitude;
var lng=pos.coords.longitude;
var myLatlng = new google.maps.LatLng(lat,lng);
initMap(myLatlng);
}, function(err){
});}
我已经用上面的代码验证了 vars lat,lng 填充了正确的值。所以,接下来我要做的是渲染我的 google 地图以显示,我通过下面的 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,完全绕过了"getCurrentPosition"操作,嵌套在initialize()函数中
如有任何建议,我们将不胜感激。
所以,我的初始逻辑的问题是执行 getCurrentPosition 是一个异步调用,这意味着它将在 DOM 完全加载后接收其数据。所以,为了解决这个问题,我使用 $q.defer() 创建一个 promise 对象,以便稍后访问。有关如何执行此操作的更多信息,请参见我发布到的另一个论坛:
https://forum.ionicframework.com/t/ngcordova-getcurrentposition-with-google-maps-api/44153
祝你好运,编码愉快!
我知道有很多支持论坛,但似乎没有人完全知道我正在寻找的答案。所以,详细来说,下面是我的场景(我在离子框架中开发)。
我正在使用 ngCordova cordova-plugin-geolocation 获取我的当前位置(这很好用):
function initialize(){
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function(pos){
var lat=pos.coords.latitude;
var lng=pos.coords.longitude;
var myLatlng = new google.maps.LatLng(lat,lng);
initMap(myLatlng);
}, function(err){
});}
我已经用上面的代码验证了 vars lat,lng 填充了正确的值。所以,接下来我要做的是渲染我的 google 地图以显示,我通过下面的 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,完全绕过了"getCurrentPosition"操作,嵌套在initialize()函数中
如有任何建议,我们将不胜感激。
所以,我的初始逻辑的问题是执行 getCurrentPosition 是一个异步调用,这意味着它将在 DOM 完全加载后接收其数据。所以,为了解决这个问题,我使用 $q.defer() 创建一个 promise 对象,以便稍后访问。有关如何执行此操作的更多信息,请参见我发布到的另一个论坛:
https://forum.ionicframework.com/t/ngcordova-getcurrentposition-with-google-maps-api/44153
祝你好运,编码愉快!