调整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的图像显得大一些。
不需要编程。