我以前从未使用过Google Maps API,也找不到与此在线发布的类似问题。我在这里做一些非常基本的事情,
我只想在Google Maps上放置OpenSeaMaps。
而且我在网上看到了几个代码示例,所以我使用下面的代码,但遇到一个问题map.mapTypes.insertAt is not a function
,但是我查看了文档,但似乎并没有弃用它,有两个Google Maps API的示例,例如https://developers.google.com/maps/documentation/javascript/examples/maptype-overlay
有谁知道为什么会引发此错误?
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: { lat: 35.1264, lng: 33.4299 },
mapTypeIds: ['satellite', 'OSM']
});
var osmMapTypeOptions = {
getTileUrl: function(coord, zoom) {
return "http://t1.openseamap.org/seamark/" +
zoom + "/" + coord.x + "/" + coord.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 19,
minZoom: 0,
name: "OSM"
};
var osmMapType = new google.maps.ImageMapType(osmMapTypeOptions);
map.setMapTypeId('OSM');
map.mapTypes.insertAt(0, osmMapType);
}
最佳答案
MapTypesRegistry没有.insertAt
方法。见the documentation on MapTypes
在我看来,您需要OverlayMapType
确实有一个.insertAt
方法,这对我有用(请注意从map.mapTypes.insertAt(0, osmMapType);
到map.overlayMapTypes.insertAt(0,osmMapType);
的更改:
var osmMapTypeOptions = {
getTileUrl: function(coord, zoom) {
return "http://t1.openseamap.org/seamark/" +
zoom + "/" + coord.x + "/" + coord.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 19,
minZoom: 0,
name: "OSM"
};
var osmMapType = new google.maps.ImageMapType(osmMapTypeOptions);
map.overlayMapTypes.insertAt(0,osmMapType);
map.overlayMapTypes.insertAt(1,osmMapType);
proof of concept fiddle
(缩放比例小于10的图像似乎并不多)
关于javascript - 索引:145未捕获的TypeError:map.mapTypes.insertAt不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42249042/