イベント


ブラウザの JavaScript は「イベント駆動型」です。つまり、JavaScript はイベントを生成することで対話に応答し、プログラムが対象のアクティビティを「リッスン」することを期待します。たとえば、ブラウザでは、ユーザーのマウスとキーボードの操作により、DOM 内に伝播するイベントが作成されることがあります。特定のイベントに関心のあるプログラムは、それらのイベントの JavaScript イベント リスナーを登録し、それらのイベントを受信したときにコードを実行します。

Baidu Map API には独自のイベント モデルがあり、プログラマは Map API オブジェクトのカスタム イベントをリッスンできます。使用方法は DOM イベントに似ています。ただし、Map API イベントは独立しており、標準の DOM イベントとは異なることに注意してください。

イベント監視

Baidu Map API のほとんどのオブジェクトには addEventListener メソッドが含まれており、このメソッドを使用してオブジェクト イベントをリッスンできます。たとえば、BMap.Map には click、dblclick、その他のイベントが含まれています。これらのイベントは特定の状況下でトリガーされ、リスニング関数は対応するイベント パラメーター e を取得します。たとえば、ユーザーがマップをクリックすると、e パラメーターにはマウスに対応する地理的位置ポイントが含まれます。

マップ API オブジェクトのイベントについては、完全な API リファレンス ドキュメントを参照してください。

addEventListener メソッドには、リッスンするイベントの名前と、イベントがトリガーされたときに呼び出される関数という 2 つのパラメーターがあります。以下の例では、ユーザーがマップをクリックするたびにアラート ボックスがポップアップ表示されます。

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("click", function(){    
 alert("您点击了地图。");    
});

イベントをリッスンすることで、イベントがトリガーされた後のステータスをキャプチャすることもできます。次の例は、ユーザーが地図をドラッグした後の地図中心の緯度と経度の情報を示しています。

うわー

イベント パラメーターとこれについて

標準の DOM イベント モデル (DOM レベル 2 イベント) では、リッスン関数はイベント オブジェクト e を取得し、イベントに関する情報を取得できます。 e情報で。同時に、リスニング関数では、これはイベントをトリガーした DOM 要素を指します。 Baidu Map API のイベント モデルはこれに似ています。イベント オブジェクト e はイベント リスニング関数に渡されます。各 e パラメーターには、少なくともイベントの種類 (タイプ) とイベントをトリガーしたオブジェクト (ターゲット) が含まれます。また、API は、関数内の this が、イベントをトリガーした (そしてバインドされていた) API オブジェクトを指していることも保証します。

たとえば、クリックスルー パラメーター e の緯度と経度の座標を取得します。

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("dragend", function(){    
 var center = map.getCenter();    
 alert("地图中心点变更为:" + center.lng + ", " + center.lat);    
});

または、これを通じてマップのズーム レベルを取得します。

var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);    
map.addEventListener("click", function(e){    
 alert(e.point.lng + ", " + e.point.lat);    
});

リッスン イベントの削除

イベントをリッスンする必要がなくなった場合は、リッスンするイベントを移動できます。取り除く。各 API オブジェクトは、イベント リスニング関数を削除するための RemoveEventListener を提供します。

次の例では、ユーザーがマップ上で最初にクリックすると、イベント リスニング機能がトリガーされます。イベント リスニング機能は関数内で削除されるため、それ以降のクリック操作ではリスニング機能はトリガーされません。

うわぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁん