【发布时间】:2016-08-23 00:22:37
【问题描述】:
我正在尝试显示地图标记但无济于事。
构造函数:
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”无法找到 map_canvas 有关。在这种情况下我该怎么做?
更新: 即使按照 Will 的建议尝试使用或不使用 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);
}
更新 2: 在我的 css 中,我添加了以下代码行,导致我的标记不出现。
div{
max-width:100%;
max-height:100%;
}
用 Will 的回答将其删除。
【问题讨论】:
-
为什么在
getCurrentPosition函数的回调中初始化你的地图?因为这是异步的,所以在创建标记后会初始化您的地图 -
@Will.Harris 更新了!
-
我的意思是你像这样在回调中初始化你的地图...
this.map = new google.maps.Map(document.getElementById("map_canvas"), options);。但是您的标记代码不在回调中,因此您的标记代码将其设置为map_canvas但map_canvas尚未初始化!这有意义吗? -
你需要在调用
Geolocation.getCurrentPosition()之前初始化你的地图
标签: javascript google-maps google-maps-api-3 ionic-framework ionic2