Angularjs 覆盖图像地图类型google map时的绑定数组是什么

Angularjs 覆盖图像地图类型google map时的绑定数组是什么,angularjs,google-maps,google-maps-api-3,google-visualization,Angularjs,Google Maps,Google Maps Api 3,Google Visualization,我不熟悉这种地图类型。它有以下代码 function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 18, center: {lat: 37.783, lng: -122.403} }); var bounds = { 17: [[20969, 20970], [5065

我不熟悉这种地图类型。它有以下代码

function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 18,
          center: {lat: 37.783, lng: -122.403}
        });

        var bounds = {
          17: [[20969, 20970], [50657, 50658]],
          18: [[41939, 41940], [101315, 101317]],
          19: [[83878, 83881], [202631, 202634]],
          20: [[167757, 167763], [405263, 405269]]
        };

        var imageMapType = new google.maps.ImageMapType({
          getTileUrl: function(coord, zoom) {
            if (zoom < 17 || zoom > 20 ||
                bounds[zoom][0][0] > coord.x || coord.x > bounds[zoom][0][1] ||
                bounds[zoom][1][0] > coord.y || coord.y > bounds[zoom][1][1]) {
              return null;
            }

            return ['//www.gstatic.com/io2010maps/tiles/5/L2_',
                zoom, '_', coord.x, '_', coord.y, '.png'].join('');
          },
          tileSize: new google.maps.Size(256, 256)
        });

        map.overlayMapTypes.push(imageMapType);
      }
函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:18,
中心:{lat:37.783,lng:-122.403}
});
变量界限={
17: [[20969, 20970], [50657, 50658]],
18: [[41939, 41940], [101315, 101317]],
19: [[83878, 83881], [202631, 202634]],
20: [[167757, 167763], [405263, 405269]]
};
var imageMapType=new google.maps.imageMapType({
getTileUrl:函数(坐标、缩放){
如果(缩放<17 | |缩放>20||
边界[zoom][0][0]>coord.x | | coord.x>边界[zoom][0][1]||
边界[zoom][1][0]>coord.y | | coord.y>bounds[zoom][1][1]){
返回null;
}
return['//www.gstatic.com/io2010map/tiles/5/L2_',
缩放,'.',coord.x,'.',coord.y,'.png'].join('');
},
tileSize:new google.maps.Size(256256)
});
map.overlyMapTypes.push(imageMapType);
}
我不是什么界限数组

谷歌有文档,但我更难理解这种地图类型。有人能解释一下吗

我对lat lng有4分。如何在这些点内覆盖图像


提前谢谢

在提供的示例中,
边界
数组表示每个缩放级别的瓷砖坐标。平铺坐标用于参考包含任何给定点的图像的地图平铺。有关更多详细信息,请参阅。平铺坐标可以转换为纬度/经度,反之亦然,例如:

var imageMapType = new google.maps.ImageMapType({
    getTileUrl: function (coord, zoom) {

        var scale = Math.pow(2, zoom);
        var prj = map.getProjection();
        var worldCoordinate = new google.maps.Point(coord.x * this.tileSize.width / scale,coord.y * this.tileSize.height / scale);
        var latLng = prj.fromPointToLatLng(worldCoordinate);
        console.log(latLng.toString());

        if (zoom < 17 || zoom > 20 ||
            bounds[zoom][0][0] > coord.x || coord.x > bounds[zoom][0][1] ||
            bounds[zoom][1][0] > coord.y || coord.y > bounds[zoom][1][1]) {
            return null;
        }

        var tileUrl = ['//www.gstatic.com/io2010maps/tiles/5/L2_',
            zoom, '_', coord.x, '_', coord.y, '.png'].join('');

        return tileUrl;
    },
    tileSize: new google.maps.Size(256, 256)
});
var imageMapType=new google.maps.imageMapType({
getTileUrl:函数(坐标、缩放){
变量比例=数学功率(2,缩放);
var prj=map.getProjection();
var worldcordination=new google.maps.Point(coord.x*this.tileSize.width/scale,coord.y*this.tileSize.height/scale);
var latLng=prj.从点到点(世界坐标);
console.log(latLng.toString());
如果(缩放<17 | |缩放>20||
边界[zoom][0][0]>coord.x | | coord.x>边界[zoom][0][1]||
边界[zoom][1][0]>coord.y | | coord.y>bounds[zoom][1][1]){
返回null;
}
var tileUrl=['//www.gstatic.com/io2010map/tiles/5/L2",
缩放,'.',coord.x,'.',coord.y,'.png'].join('');
返回蒂勒尔;
},
tileSize:new google.maps.Size(256256)
});
在哪里

coord
zoom
-平铺坐标和图像平铺的缩放级别

可以考虑使用以下选项将图像覆盖到地图上

选项1。使用自定义地图类型

如下图所示,可以使用从图像生成地图分幅

形象

边界
(南:62.281819,西:-150.287132,北:62.400471,东:-150.005608)

结果

选项2。使用自定义覆盖图

覆盖是地图上与纬度/经度坐标关联的对象,因此当您拖动或缩放地图时,它们会移动。演示如何创建包含地图上相关区域图像的自定义覆盖