我在网站的不同位置使用标记图像。用户可以选择图像上传。这个大小可能适合网站,但对于标记来说,在许多情况下它有点大,所以我想使用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获取图片大小吗?还是一些时髦的选择?
非常感谢。
答案 0 :(得分:3)
没有通过JavaScript实现这一目标的实用方法。您引用的size
属性用于指定图标大小,而不是获取图标大小。
如果用户正在上传图像,您可以使用服务器端代码根据需要调整图像大小,也可以使用服务器端代码来访问图像尺寸,并将这些尺寸作为属性包含在作为零件发送的数据中dataItem
。如果您的服务器上的所有内容都是标准尺寸(即图像大小相同),则无需调整每个图标图像的图标大小。如果您有可变大小的图像,则需要对每个图像使用size
属性来声明大小,然后使用scaledSize
属性相应地缩放每个图像。