2011-09-12 73 views
4

我正在使用Google的Places API(http://code.google.com/apis/maps/documentation/places/)。我想使用Google通過的圖標作爲地點結果集的一部分,但它們看起來很大並且超出規模。Google放置API圖標

根據Google關於Marker對象的文檔,Marker.setIcon方法應自動縮放圖像以適應地圖。

我使用的是這樣的:

var marker  = new google.maps.Marker({ 
             map: map, 
             position: place.geometry.location 
       }); 
marker.setIcon(place.icon); 

和它的作品,但圖像不結垢。無論如何,它似乎約爲75px。我也嘗試將這個圖像寫入一個新的MarkerImage對象,然後我可以縮放,但這看起來很複雜。

是否有一招讓圖標圖像正確縮放?

回答

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 
    }); 
} 
        } 
+0

正是我一直在尋找,即縮小的默認圖標大小。我會花費相當多的時間來弄清楚自己和這個答案完全幫助我..我只需要複製並粘貼它:) – whizcreed

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