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:ピンの追加
こんな感じが今のところベストなやり方でしょうか