在网上搜索了几次后,我没有发现任何关于深度自定义默认地图类型 google api 按钮的信息。
所以这是一种从头开始重新创建它们并通过 css 自定义它们的方法。
首先,使用以下命令禁用默认按钮:
map.setOptions({disableDefaultUI: true});
然后,您可以创建一个对象来处理自定义按钮的管理:
function DrawMapTypeControl(map, mapTypeName, controlPos) {
// Set div & css for the mapType button
var controlDiv = document.createElement('div');
controlDiv.className = 'map_type_button';
controlDiv.index = 1;
map.controls[controlPos].push(controlDiv);
// Set div & css for the control border.
var controlUI = document.createElement('div');
controlDiv.className = 'map_type_button_border';
controlDiv.appendChild(controlUI);
// Set div & css for the control interior.
var controlText = document.createElement('div');
controlDiv.className = 'map_type_button_interior';
controlText.innerHTML = '<strong>' + mapTypeName + '</strong>';
controlUI.appendChild(controlText);
// Setup the click event listener: simply set the map type.
google.maps.event.addDomListener(controlUI, 'click', function() {
map.setMapTypeId(mapTypeName);
});
}
wheremapTypeName
是地图类型 ID(例如 google.maps.MapTypeId.ROADMAP),并且controlPos
是地图画布上按钮的位置(例如默认按钮的 google.maps.ControlPosition.TOP_RIGHT)。
initialize
最后,只需在函数中调用按钮的创建:
var roadmapButton = new DrawMapTypeControl(map,
google.maps.MapTypeId.ROADMAP,
google.maps.ControlPosition.TOP_RIGHT);
在这里,新的自定义按钮,你只需要为map_type_button
,map_type_button_border
和map_type_button_interior
类添加一些 css。
希望这会有所帮助。