我正在尝试使用 Google Maps Javascript API 显示自定义地图。特别是,我正在尝试使用几个 jquery 脚本来显示它以允许旋转地图。我不确定那部分是否相关。
当使用标准谷歌地图数据(即地球的瓦片)运行代码时,它运行良好。所以这是我的地图创建代码:
// Standard google map
var map = new google.maps.Map2(document.getElementById('map'));
map.setCenter(new google.maps.LatLng(37.4419, -122.1419), 13);
这工作正常。但是,当我尝试使用自定义地图并为其提供我自己的图块时(我已经在另一个项目中实现了这一点,没有地图旋转),我得到“未定义不是函数”。以下是已添加以使用自定义图块而不是标准 Google 地图数据的代码:
google.load("maps", "2.x");
var customTypeOptions = {
getTileUrl: function (coord, zoom) {
var normalizedCoord = getNormalizedCoord(coord, zoom);
if (!normalizedCoord) {
return null;
}
var bound = Math.pow(2, zoom);
return "http://MYTILESURL/" + zoom + "/" + normalizedCoord.x + "/" + (bound - normalizedCoord.y - 1) + ".jpg";
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 3,
minZoom: 0,
radius: 1024,
name: 'custom'
};
var customMapType = new google.maps.ImageMapType(customTypeOptions);
然后在我的 initialize() 函数中:
// Custom map
var myLatlng = new google.maps.LatLng(0, 0);
var myOptions = {
center: myLatlng,
zoom: 0,
streetViewControl: false,
mapTypeControlOptions: {
mapTypeIds: ['custom']
}
};
var map = new google.maps.Map(document.getElementById('map'), myOptions);
map.mapTypes.set('custom', customMapType);
map.setMapTypeId('custom');
我得到的错误是显示“第 46 行”,在我的代码中是“tileSize: new google.maps.Size(256, 256)”。但是,我不确定这里报告的 46 是否与我正在阅读的 46 相同,即文件的第 46 行。
有谁知道为什么我会收到这个“未定义不是函数”错误?