Я пытаюсь отобразить маркер карты безрезультатно.Ионные 2: Маркер карты не отображается
Constructor:
constructor(navController, platform, app) {
this.navController = navController;
this.platform = platform;
this.app = app;
platform.ready().then(() => {
this.initializeMap();
});
}
Логика:
initializeMap() {
Geolocation.getCurrentPosition().then((resp) => {
console.log("Lat: ", resp.coords.latitude);
console.log("Long: ", resp.coords.longitude);
});
let locationOptions = {timeout: 30000, enableHighAccuracy: true};
navigator.geolocation.getCurrentPosition(
(position) => {
let options = {
// /new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
setMyLocationEnabled: true
}
this.map = new google.maps.Map(document.getElementById("map_canvas"), options);
},
(error) => {
console.log(error);
}, locationOptions
);
var myLatLng = new google.maps.LatLng(1.290270,103.851959);
var marker = new google.maps.Marker({
position: myLatLng,
title: 'Hello World!',
});
var map = google.maps.Map(document.getElementById("map_canvas"));
marker.setMap(map);
}
Все отлично просто карта маркер не отображается работает.
Я попытался создать новый экземпляр карты и установить z-index другой карты в 1, но он тоже не появляется. Даже если все функции маркера внутри внутренней функции тоже не работают.
Я предполагаю, что это может иметь отношение к моей карте «var», неспособной найти map_canvas. Как это сделать в этом случае?
Обновление: Даже после того, как предложение Уилла и попытка с или без setInterval, маркер тоже не отображается.
var myVar = setTimeout(myFunction, 5000);
function myFunction(){
var myLatLng = new google.maps.LatLng(1.290270,103.851959);
var marker = new google.maps.Marker({
position: myLatLng,
title: 'Hello World!',
});
console.log("poof");
marker.setMap(this.map);
}
Update 2: В моем CSS, я добавил следующие строки кода, которые вызывают мои маркеры не появляются.
div{
max-width:100%;
max-height:100%;
}
Снятие его с ответа Уилла.
Почему вы инициализируете карту в функции обратного вызова в 'getCurrentPosition 'функция? потому что это асинхронно, ваша карта инициализируется после создания вашего маркера –
@ Will.Harris Обновлено! – Gene
Я имел в виду, что вы инициализируете свою карту внутри обратного вызова следующим образом: 'this.map = new google.maps.Map (document.getElementById (" map_canvas "), options);'. Но ваш код маркера не находится внутри обратного вызова, поэтому ваш код маркера устанавливает его в 'map_canvas', но' map_canvas' не был инициализирован в точке! Имеет ли это смысл? –