Google maps api 3 向上扩展Google Maps API v3 MarkerIcons
我正在显示一张包含许多标记的地图,所有标记都基于相同的png,但缩放到不同的大小 基本大小是64 x 64,如果我缩小比例,事情会按预期进行 如果按比例放大,图标将被裁剪。我制作了一个简单的JSFIDLE来说明这个问题——这是代码缩放图标。我的理解是,第一个大小是源图像的实际大小(以像素为单位),接下来的两个位置是原点和锚点,我暂时不关心,最终大小是以像素为单位的缩放大小Google maps api 3 向上扩展Google Maps API v3 MarkerIcons,google-maps-api-3,Google Maps Api 3,我正在显示一张包含许多标记的地图,所有标记都基于相同的png,但缩放到不同的大小 基本大小是64 x 64,如果我缩小比例,事情会按预期进行 如果按比例放大,图标将被裁剪。我制作了一个简单的JSFIDLE来说明这个问题——这是代码缩放图标。我的理解是,第一个大小是源图像的实际大小(以像素为单位),接下来的两个位置是原点和锚点,我暂时不关心,最终大小是以像素为单位的缩放大小 var icon_scaled = new google.maps.MarkerImage( img-filenam
var icon_scaled = new google.maps.MarkerImage(
img-filename,
new google.maps.Size(64, 64),
null,
null,
new google.maps.Size(scaled_size, scaled_size)
);
在我找到的示例中,可以省略第一个大小,让浏览器计算它。在Chrome上工作,但在Firefox上失败,并显示以下错误消息:
Error: IndexSizeError: Index or size is negative or
greater than the allowed amount
在这里拉小提琴:
如何在两种浏览器上都执行此操作而不出现任何错误
顺便说一句:我知道MarkerIcon不受欢迎-我的实验根据文档使用“图标”替换它,并指定“大小”和“缩放大小”导致了同样的问题。我也有同样的问题,经过一些研究和简单的解决方法,我能够解决这个问题 这就是我所做的 似乎需要同时设置“size”和“scaleSize”属性才能在FF中工作。但是,还有一件事困扰着我。当我将“大小”属性设置为图标的原始大小时,图标会缩放,但会突然裁剪,而不会显示完整的图标-可能是因为大小限制 因此,我将的“size”属性设置为缩放img的最大限制(在我的例子中是64),它就像一个符咒一样工作
cObject.setIcon({
url: cObjects[y].getIcon().url,
scaledSize: new google.maps.Size(icoSize, icoSize-1),
size:new google.maps.Size(64, 64)
});