我正在使用Google的Places API(http://code.google.com/apis/maps/documentation/places/)。我想使用Google传递的图标作为地方结果集的一部分,但它们看起来很大且超出规模。
根据Google关于Marker对象的文档,Marker.setIcon方法应自动缩放图像以适应地图。
我正在使用这样的东西:
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
marker.setIcon(place.icon);
并且它可以工作,但图像没有缩放。无论如何,它似乎约为75px平方。我也尝试将这个图像写入一个新的MarkerImage对象,然后我可以进行缩放,但这看起来非常复杂。
有没有让图标图像正确缩放的技巧?
答案 0 :(得分:7)
好的,我没有在这里得到任何想法,所以我继续创建一个新的MarkerImage对象并缩放。工作得很好,不太优雅,但这里是:
// pass in the place object returned by the Google Place API query
function createPlace(place){
var gpmarker = new google.maps.MarkerImage(place.icon, null, null, null, new google.maps.Size(25, 25));
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location,
title: place.name,
icon: gpmarker
});
}
}
答案 1 :(得分:5)
更新的方法是:
var image = {
url: place.icon,
size: new google.maps.Size(71, 71),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(17, 34),
scaledSize: new google.maps.Size(25, 25)
};