Я знаю, что существует множество форумов поддержки, но кажется, что ни у кого нет ответа, который я ищу. Итак, в деталях ниже мой сценарий (я разрабатываю в ионном фрейме).
Я использую 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){
});}
Я проверил, что с помощью приведенного выше кода переменные 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 - то же пустое изображение
- вывод всего из строя (отчаянная попытка) - тот же пустой образ
Успешно, когда:
Я вызываю initMap напрямую с объектом Google latlong, полностью минуя операцию "getCurrentPosition", которая вложена в функцию initialize().
Любые рекомендации будут действительно оценены.