0

我创建了一个自定义 StyledMapType 并将其插入 google.maps.overlayMapTypes 以便在另一个图层上绘制此自定义地图。不幸的是,我收到了这条 javascript 错误消息:

未捕获的类型错误:无法调用未定义 main.js:9
(匿名函数)main.js:9
d
L main.js:9
du
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。

谢谢,弗朗索瓦

4

1 回答 1

0

首先,我不确定您为什么要这样做。设置基本地图类型的样式不是更容易吗? https://developers.google.com/maps/documentation/javascript/styling#styling_the_default_map

基本上,当您创建要在 overlayMapTypes 中使用的地图类型时,它需要定义 getTile。在此处查看文档: https ://developers.google.com/maps/documentation/javascript/maptypes#OverlayMapTypes StyledMap 没有公开这一点。

于 2012-05-25T13:41:12.430 回答