调整Google地图标记图标图片的大小

当我将一个图像加载到标记的图标属性中时,它将以原始大小显示,这比原来大得多。

我想调整到一个更小的尺寸的标准。 做这个的最好方式是什么?

码:

function addMyPos(latitude,longitude){ position = new google.maps.LatLng(latitude,longitude) marker = new google.maps.Marker({ position: position, map: map, icon: "../res/sit_marron.png" }); } 

如果原始大小为100 x 100,并且您想将其缩放到50 x 50,则使用scaledSize而不是Size。

 var icon = { url: "../res/sit_marron.png", // url scaledSize: new google.maps.Size(50, 50), // scaled size origin: new google.maps.Point(0,0), // origin anchor: new google.maps.Point(0, 0) // anchor }; var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat, lng), map: map, icon: icon }); 

正如在评论中提到的,这是更新的解决scheme,支持与文档的图标对象。

使用图标对象

 var icon = { url: "../res/sit_marron.png", // url scaledSize: new google.maps.Size(50, 50), // scaled size origin: new google.maps.Point(0,0), // origin anchor: new google.maps.Point(0, 0) // anchor }; posicion = new google.maps.LatLng(latitud,longitud) marker = new google.maps.Marker({ position: posicion, map: map, icon: icon }); 

MarkerImage已被弃用的图标

直到Google Maps JavaScript API 3.10版本为止,复杂图标被定义为MarkerImage对象。 在3.10中添加了图标对象字面值,并从版本3.11开始取代MarkerImage。 图标对象文字支持与MarkerImage相同的参数,允许您轻松地将MarkerImage转换为图标,方法是移除构造函数,在{}中包装上述参数,并添加每个参数的名称。

Phillippe的代码现在是:

  var icon = { url: "../res/sit_marron.png", // url size: new google.maps.Size(width, height), // size origin: new google.maps.Point(0,0), // origin anchor: new google.maps.Point(anchor_left, anchor_top) // anchor }; position = new google.maps.LatLng(latitud,longitud) marker = new google.maps.Marker({ position: position, map: map, icon: icon }); 

像我这样的主题的完全初学者可能会发现,实现这些答案之一比如果在你的控制之下,用一个在线编辑器或像Photoshop一样的照片编辑器自己调整图像大小更难。

500×500的图像在地图上会比50×50的图像显得大一些。

不需要编程。