Google会放置API图标

时间:2011-09-12 21:12:32

标签: javascript google-maps-api-3

我正在使用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对象,然后我可以进行缩放,但这看起来非常复杂。

有没有让图标图像正确缩放的技巧?

2 个答案:

答案 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)
};