调整标记图像google maps API v3

时间:2012-04-18 13:21:23

标签: google-maps google-maps-markers

我在网站的不同位置使用标记图像。用户可以选择图像上传。这个大小可能适合网站,但对于标记来说,在许多情况下它有点大,所以我想使用API​​函数来检测大图像然后调整大小。

我无法让API返回当前图片大小。代码现在看起来像这样:

var iconImg = new google.maps.MarkerImage('/'+myTrailers.getIcon(dataitem));
// TODO:  place resize function here **
var marker = new google.maps.Marker({position: pos, map: myMap.map, content: html, icon: iconImg, id: dataitem.unit_id});

我尝试过使用这些功能 googleMapsAPI-MarkerImage 但不知何故,该功能不起作用

OrgSize = iconImg.size();

如果我能检测到图像的原始大小,我可以使用它来计算这样的新大小。

if(OrgSize[x] > 20){
    NewSize[x] = 20;
    NewSize[y] = OrgSize[y] * (NewSize[x] / OrgSize[x]);

有人知道如何使用google maps API获取图片大小吗?还是一些时髦的选择?

非常感谢。

1 个答案:

答案 0 :(得分:3)

没有通过JavaScript实现这一目标的实用方法。您引用的size属性用于指定图标大小,而不是获取图标大小。

如果用户正在上传图像,您可以使用服务器端代码根据需要调整图像大小,也可以使用服务器端代码来访问图像尺寸,并将这些尺寸作为属性包含在作为零件发送的数据中dataItem。如果您的服务器上的所有内容都是标准尺寸(即图像大小相同),则无需调整每个图标图像的图标大小。如果您有可变大小的图像,则需要对每个图像使用size属性来声明大小,然后使用scaledSize属性相应地缩放每个图像。