1

我在网站的各个地方使用标记图像。用户可以选择上传图片。该大小可能适合该站点,但对于标记而言,在许多情况下它有点大,所以我想使用 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]);

有人知道如何使用谷歌地图 API 获取图像大小吗?或者一些时髦的选择?

非常感谢。

4

1 回答 1

3

没有实用的方法可以通过 JavaScript 做到这一点。您引用的size属性用于指定图标大小,而不是获取图标大小)。

如果用户正在上传图像,您可以使用服务器端代码根据需要调整图像大小,也可以使用服务器端代码访问图像尺寸并将这些尺寸作为属性包含在作为dataItem. 如果一切都是服务器上的标准尺寸(即,图像都是相同的尺寸),那么您不需要调整每个图标图像的图标大小。如果您有可变大小的图像,那么您需要使用size每个图像的属性来声明大小是什么,然后使用该scaledSize属性相应地缩放每个图像。

于 2012-04-21T00:47:39.700 回答