2011-09-12 18 views
4

GoogleのPlaces API(http://code.google.com/apis/maps/documentation/places/)を使用しています。私は、Googleが場所の結果セットの一部として渡すアイコンを使用したいと思っていますが、巨大で外見が似ています。Google places APIアイコン

MarkerオブジェクトのGoogleのドキュメントによれば、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) 
}; 
関連する問題