我创建了一个自定义的StyledMapType并将其插入google.maps.overlayMapTypes,以便在另一个图层上绘制此自定义地图。不幸的是,我有这个javascript错误消息:
未捕获的TypeError:无法调用undefined main.js的方法'apply':9
(匿名函数)main.js:9
d
L main.js:9
杜
H. $
(匿名函数)
以下是我在浏览器中执行的代码:
function initialize() {
var pinkParksStyles = [
{
featureType: "all",
stylers: [
{ saturation: -80 }
]
},
{
featureType: "poi.park",
stylers: [
{ hue: "#ff0023" },
{ saturation: 40 }
]
}
];
var pinkMapType = new google.maps.StyledMapType(pinkParksStyles,
{name: "Pink Parks"});
var mapOptions = {
zoom: 11,
center: new google.maps.LatLng(55.6468, 37.581),
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP]
}
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
//Insert styled map in overlayMapTypes.
map.overlayMapTypes.insertAt(0, pinkMapType);
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
}
要查看完整示例,请参阅jsfiddle代码:http://jsfiddle.net/X5r8r/460/ 您可以注意到,在此示例中,样式化地图用作mapType,但不用作overlayMapType。
谢谢, 弗朗索瓦
答案 0 :(得分:0)
首先,我不确定你为什么要这样做。设置基本地图类型不是更容易吗? https://developers.google.com/maps/documentation/javascript/styling#styling_the_default_map
基本上,当您创建要在overlayMapTypes中使用的maptype时,需要定义getTile。查看此处的文档: https://developers.google.com/maps/documentation/javascript/maptypes#OverlayMapTypes StyledMap没有公开它。