mapTypeControl
ユーザーが を介して設定されている場合とは異なる方法で をクリックした場合を処理する必要がありますmap.setMapTypeId()
。マップ タイプ コントロールのクリックをリッスンするにはどうすればよいですか?
質問する
1284 次
2 に答える
2
デフォルトの UI コントロール セットでイベントをリッスンすることはできません。mapTypeControl
しかし、とのクリックを区別することに厳密に集中している場合は、状態管理コードを呼び出して追加するmap.setMapTypeId()
可能性のあるコードを制御するという事実を利用できます。setMapTypeId()
// First, add a new state var:
var typeIdChangedInCode = false;
// Then, anywhere in your code where you call setMapTypeId(), add this:
typeIdChangedInCode = true;
map.setMapTypeId( newTypeId );
// Finally, include state checking code in the map event listener:
google.maps.event.addListener( map, "maptypeid_changed", function( evnt ) {
if ( typeIdChangedInCode ) {
//handle the scenario in the non-click way, but REMEMBER TO:
typeIdChangedInCode = false;
}
else {
//handle the scenario in the map click way
}
});
これにより、必要な方法で 2 つの異なるオカレンスを処理できるようになります。
于 2012-04-30T18:02:16.313 に答える
0
google.maps.event.addListener(map, 'maptypeid_changed', function(e){
alert(map.getMapTypeId());
});
于 2012-04-30T14:51:59.493 に答える