GoogleMaps APIで中心からずらす方法

マップを中心からずらす事はできないかと調べてみました。

GoogleMapsには良いリファレンスがあります。

setCenter(latlng);

中心に移動する場合は既存のメソッドで問題ないですが
ずらして設定したい場合、自分で実装しなければならないようです。

 

1.実数を追加して移動する方法

map.setCenter(new LatLng(latlng.lat()+0.1, latlng.lng()));

ズームしない場合ならば緯度経度に移動分を実数で加算できます。
可変ズームの場合は、ズレが生じてしまうので使用は限られる。

 

2.setPosメソッドを作る方法

public function setPos(latlng:LatLng , x:Number, y:Number ):void {
	map.setCenter(latlng);
	map.setCenter( map.fromViewportToLatLng(new Point(stage.stageWidth*0.5 - x, stage.stageHeight*0.5 - y)) );
}

中心に移動して(x,y)分、離れている座標の緯度経度を取得
それをsetCenterに突っ込むという方法。

 

This movie requires Flash Player 9

CLICK:中心から100px下に移動 / CLICK+SHIFT:ピンの追加

こんな感じが今のところベストなやり方でしょうか

Filed under API, AS3, GoogleMaps · Tagged with ,

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.