gpt4 book ai didi

javascript - ionic 2 : Google Map Custom Controls Not Working

转载 作者:行者123 更新时间:2023-12-03 07:05:05 25 4
gpt4 key购买 nike

我在 Ionic2 中有一个谷歌地图实现。 map 和地理定位效果很好。仅在我尝试在 map 中实现自定义控件/按钮后才发生错误。我点击了这个链接: https://developers.google.com/maps/documentation/javascript/examples/control-custom

这是我的js代码(构造函数):

 constructor(navController, platform, app) {
this.navController = navController;
this.platform = platform;
this.app = app;

platform.ready().then(() => {
this.initializeMap();
});
}

自定义控件:

 CenterControl(controlDiv, map){
// Set CSS for the control border.
var controlUI = document.createElement('div');
controlUI.style.backgroundColor = '#fff';
controlUI.style.border = '2px solid #fff';
controlUI.style.borderRadius = '3px';
controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
controlUI.style.cursor = 'pointer';
controlUI.style.marginBottom = '22px';
controlUI.style.textAlign = 'center';
controlUI.title = 'Click to recenter the map';
controlDiv.appendChild(controlUI);

// Set CSS for the control interior.
var controlText = document.createElement('div');
controlText.style.color = 'rgb(25,25,25)';
controlText.style.fontFamily = 'Roboto,Arial,sans-serif';
controlText.style.fontSize = '16px';
controlText.style.lineHeight = '38px';
controlText.style.paddingLeft = '5px';
controlText.style.paddingRight = '5px';
controlText.innerHTML = 'Center Map';
controlUI.appendChild(controlText);

// Setup the click event listeners: simply set the map to Chicago.
controlUI.addEventListener('click', function() {
map.setCenter(chicago);
});

}

map 初始化:

initializeMap() {

let locationOptions = {timeout: 10000, 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
}
this.map = new google.maps.Map(document.getElementById("map_canvas"), options);

var centerControlDiv = document.createElement('div');
var centerControl = new CenterControl(centerControlDiv, options);
centerControlDiv.index = 1;
map.controls[google.maps.ControlPosition.TOP_CENTER].push(centerControlDiv);

},

(error) => {
console.log(error);
}, locationOptions
);
}

我的index.html:

<script src="http://maps.google.com/maps/api/js?key=<MY API KEY>"></script>

给出的错误消息是这样的: enter image description here

第 87 行指的是:

var centerControl = new CenterControl(centerControlDiv, options);

我无法将“CenterControl(){}”设置为“function CenterControl(){}”,因为在这种情况下我会遇到语法错误。

最佳答案

我会像这样定义CenterControl:

export class CenterControl {
constructor(controlDiv, map){
(...)
}
}

而不是

CenterControl(controlDiv, map) {
(...)
}

然后当你想使用它时导入...不要忘记export关键字。

编辑

如果它是您的类的方法,只需这样调用即可:

this.CenterControl(centerControlDiv, options);
centerControlDiv.index = 1;
this.map.controls[google.maps.ControlPosition.TOP_CENTER].push(centerControlDiv);

关于javascript - ionic 2 : Google Map Custom Controls Not Working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com