2016-02-14 6 views
0

Я знаю, что есть тонна форумов поддержки, но кажется, что никто не имеет ответа, который я ищу. Итак, в деталях ниже приведен мой сценарий (я развиваюсь в ионной системе).ngCordova getCurrentLocation вызывает пустую карту google

Я использую ngCordova Cordova-плагин-геолокацию, чтобы получить мое текущее местоположение (это работает отлично):

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, L заполняются соответствующими значениями. Итак, следующая вещь, которую я хочу сделать, это делает мои карты 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> 

Некоторые не удалось кодирования попытки включают в себя:

  1. используя нг-Init(), в отличие от ionic.Platform.ready - то же пустое изображение
  2. принимая все из функции (отчаянная попытка) - то же самое пустое изображение

Успешный, когда:

Слово initMap непосредственно LatLong объекта Google, полностью минуя операцию «getCurrentPosition», который вложен в функции Initialize().

Любые рекомендации будут действительно оценены.

+0

http://codepen.io/ionic/pen/uzngt Это должно помочь вам –

+0

Это была одна из ссылок, которые я использовал ... это не помогает мне, потому что $ cordovaGeolocation.getCurrentPosition() Isnt используется в этот пример. Я могу получить эту работу, если функция getCurrentPosition() не используется. – LostJon

+0

FYI, я опубликовал эту проблему более подробно на другом форуме: https://forum.ionicframework.com/t/ngcordova-getcurrentposition-with-google-maps-api/44153 – LostJon

ответ

0

Итак, проблема с моей начальной логикой заключалась в том, что выполнение getCurrentPosition - это асинхронный вызов, то есть он получит свои данные после полной загрузки DOM. поэтому, чтобы исправить это, я использую $ q.defer() для создания объекта обещания, доступ к которому позже. Более подробную информацию о том, как это сделать, можно найти на другом форуме я отправил в:

https://forum.ionicframework.com/t/ngcordova-getcurrentposition-with-google-maps-api/44153

Удачи и счастливого кодирования!

 Смежные вопросы

  • Нет связанных вопросов^_^