如何在自定义 ImageMapType 实现中拉伸某些缩放级别的磁贴
How to stretch tiles for certain zoom levels in custom ImageMapType implementation?
我已经实现了一个自定义的ImageMapType,它根据getTileUrl()的给定坐标和缩放级别返回有效的磁贴URL。
new google.maps.ImageMapType({
name: 'Satellite',
getTileUrl: function(coord, zoom) {
var p_type = "satellite",
z = zoom - 11,
corr = Math.pow(2, zoom) - Math.pow(2, z),
p_x = coord.x - corr,
p_y = coord.y - corr,
maxCoord = Math.pow(2, (z+1)) - 1;
if (p_x > maxCoord || p_y > maxCoord || p_x < 0 || p_y < 0) {
return 'http://maps.gstatic.com/intl/en_us/mapfiles/transparent.png';
}
p_x = (p_x < 16 ? '0' : '') + p_x.toString(16);
p_y = (p_y < 16 ? '0' : '') + p_y.toString(16);
return 'http://map.example.com/' + p_type + '/' + (z + 1) + '/tile_' + p_y + p_x + '.jpg';
},
tileSize: new google.maps.Size(128, 128),
isPng: false,
minZoom: 11,
maxZoom: 16
});
我有 128x128 磁贴,用于缩放级别 11 到 16。通过将 ImageMapTypeOptions 对象的 maxZoom 属性增加到 16 个以上,可以缩放到有图块的位置(当然不会出现磁贴,但标记和折线确实有效)。在这种情况下,我希望从上一个缩放层拉伸磁贴(与更改缩放级别时的过渡效果相同)。
可能吗?如果是这样,如何?
非常好的问题。从理论上讲,这应该是可以在客户端上完成的,但getTileUrl
作为 google.maps.ImageMapType
对象必须返回 URL,使用此对象时必须在服务器上执行此操作。
另一种可能性是改用更通用的google.maps.MapType
对象并定义自己的getTile
方法。然后,您可以返回自己的拉伸<img>
元素。
相关文章:
- 使用自定义记号创建可缩放的Y轴
- 传单自定义标记图标缩放
- 传单:是否可以自定义缩放级别
- 如何将自定义缩放控件添加到使用角度谷歌地图构建的地图中
- D3.js如何在水平对数缩放轴上放置自定义标签
- 使用缩放更改谷歌地图自定义图标
- 如何在自定义 ImageMapType 实现中拉伸某些缩放级别的磁贴
- 为jquery图像缩放插件定义一个选择器
- 自定义js函数'无法读取属性'缩放'的未定义'
- 找不到Angular.js Angular拖放自定义回调函数
- 缩放后删除自定义地理标记(加载了传单)
- Jquery自定义旋转木马内的图像缩放模式
- 自定义缩放控制导致最大调用堆栈大小超出错误
- 调整大小自定义图像标记与缩放-谷歌地图API v3
- OpenLayers3自定义地图缩放标记
- HighCharts——自定义重绘处理程序缩放
- 谷歌地图-画布自定义覆盖缩放
- 根据缩放级别在坐标上显示自定义图像
- 在React传单中获取自定义缩放按钮时遇到问题
- 缩放控件与谷歌地图区域中的自定义控件重叠