2012-04-18 21 views
1

ウェブサイトのさまざまな場所でマーカー画像を使用します。ユーザーには画像アップロードのオプションがあります。そのサイズはサイトに適しているかもしれませんが、マーカーの場合は多くの場合大きくなりますので、API関数を使用して大きな画像を検出してサイズを変更したいと考えています。マーカーのサイズを変更するGoogleマップAPI v3

現在の画像サイズを返すAPIを取得できません。コードは次のようなもののようになります。

var iconImg = new google.maps.MarkerImage('/'+myTrailers.getIcon(dataitem)); 
// TODO: place resize function here ** 
var marker = new google.maps.Marker({position: pos, map: myMap.map, content: html, icon: iconImg, id: dataitem.unit_id}); 

私は、これらの機能 googleMapsAPI-MarkerImage を使用してみましたが、私は画像の元のサイズを検出することができれば何とか機能が

OrgSize = iconImg.size(); 

動作しません、私はこれを使って新しいサイズを計算することができます。

if(OrgSize[x] > 20){ 
    NewSize[x] = 20; 
    NewSize[y] = OrgSize[y] * (NewSize[x]/OrgSize[x]); 

GoogleマップAPIを使用して画像サイズを取得する方法はありますか?またはいくつかのファンキーな代替?

多くのありがとうございます。

+0

私が試した場合 console.log(iconImg.toString()); 私は応答を受け取ります: [オブジェクトオブジェクト] オブジェクトからxとyの値を取得するにはどうすればよいですか? – Jeroen

答えて

3

JavaScriptを使用して実際に行う方法はありません。参照するsizeプロパティは、アイコンのサイズを取得するのではなく、アイコンのサイズを指定するために使用されます)。

ユーザーが画像をアップロードする場合は、必要に応じてサーバー側のコードを使用して画像のサイズを変更するか、サーバー側のコードを使用して画像のサイズを取得し、 dataItemの部分。すべてが標準サイズの(イメージはすべて同じサイズ)の場合、アイコンイメージごとにアイコンサイズを調整する必要はありません。可変サイズの画像を使用する場合は、各画像にsizeプロパティを使用してサイズを宣言し、scaledSizeプロパティを使用して各画像を適切に拡大縮小する必要があります。

関連する問題