【问题标题】:Resize marker Image google maps API v3调整标记图像谷歌地图 API v3
【发布时间】:2012-04-29 22:00:46
【问题描述】:

我在网站的不同位置使用标记图像。用户可以选择上传图片。这个大小可能适合网站,但对于标记来说,在很多情况下它有点大,所以我想使用 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 获取图像大小吗?还是一些时髦的替代品?

非常感谢。

【问题讨论】:

  • 如果我尝试 console.log(iconImg.toString());我得到响应:[object Object] 如何从该对象中获取 x 和 y 值?

标签: google-maps google-maps-markers


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2011-07-16
    • 2013-01-30
    • 2012-05-27
    • 1970-01-01
    相关资源
    最近更新 更多