質問

提供されたLAT/LNG座標、ズーム、ヨー、ピッチに基づいたGoogleマップとストリートビューがあります。 JavaScriptを呼び出して、詳細がデフォルトから変更されたり、ボタンがクリックされたりしたときに、これらの各値の非表示フィールドを更新する必要があります。

したがって、マップ/ストリートビューがズームインされ、パン、傾斜などが新しい詳細を出力します。

関数をgetpov()、yawchanged(yaw:number)、pitchchanged(pitch:number)、zoomchanged(zoom:number)に呼び出すにはどうすればよいですか(マップの移動エンドに似ています)

役に立ちましたか?

解決

これを圧縮する最良の方法はわかりませんが、これは変更された詳細を取得するために機能します。

GEvent.addListener(myPano, 'initialized', function(pano) {
  alert("newlng: " + pano.latlng.lng() + ", newlat: " + pano.latlng.lat());
});

GEvent.addListener(myPano, 'yawchanged', function(newyaw){
  alert("yawchanged: " + newyaw);
});

GEvent.addListener(myPano, 'pitchchanged', function(newpitch) {
  alert("pitchchanged: " + newpitch);
});

GEvent.addListener(myPano, 'zoomchanged', function(newzoom) {
  alert("zoomchanged: " + newzoom);
});

他のヒント

一般に、「MoveEnd」は、ユーザーが変更したときにマップの状態を取得するためにフックとして使用するのに最適なイベントであることがわかりました。今日の午後にもっと時間があるとき、マップからLAT/LNG、ズーム、ヨー、ピッチを取得する方法を調べる必要があります

// map is the instance of your GMap2
GEvent.addListener(map, 'moveend', function() {
  var center = map.getCenter();
  var zoom = map.getZoom();

  alert([center.lat(), center.lng(), zoom].join(','));
});

Google Maps API V3の場合...「Panorama」という名前のStreetViewマップが既にロードされていると仮定すると

google.maps.event.addListener(panorama, "pov_changed", function() { 
   var panoInfo   = panorama.getPov();
   var thePitch   = panoInfo['pitch'];
   var isHeading  = panoInfo['heading'];
   var theZoom    = panoInfo['zoom'];
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top