2

マップの横にリストされているある種のマーカーを追加したいだけで、ユーザーはそれらをマップにドラッグできます。GEvent.addDomListener(domObj, "drag",functName); を使用しようとしました。しかし、うまくいきませんでした。それを行う方法はありますか?ありがとうダウ

4

1 に答える 1

3

jQuery UIを使用しているかどうかはわかりませんが、ドラッグ可能な DOM 要素を作成し、要素の位置を見つけるプロセスを合理化するため、このライブラリを使用することをお勧めします。

この例では、jQuery UIを使用して、移動後のドラッグ可能な要素の Div ピクセル座標を見つけます。

jQuery UIを使用して、いくつかのことを行います。

  • 要素をドラッグ可能にする
  • 要素のドラッグが停止したときのイベント リスナーを作成する
  • 要素が「createMarker」と呼ばれる別の関数に移動したら、要素の位置を渡します。そこでマーカーを作成します

     $("#dragMe").draggable({
         stop:function(event,ui){
              window.createMarker(ui.position);
         }
     });
    

Create Marker は、いくつかのことを担当します。

  • ドラッグ可能な要素の左と上の位置を受け取ります
  • マップのオフセットを考慮しながら、そのポイントに相当するGLatLngポイントを計算します
  • マーカーを作成してマップに追加する

            function createMarker(position)
            {
                //Adjust Offset
                var offset = {
                        left:10,
                        top:-5
                }
    
                   //Create a new GPoint
                   var myGPoint = new GPoint(
                       position.left+offset.left,
                       position.top+offset.top
                   );
    
                   //Calculate the LatLng for this point
                   var myLatLng = map.fromDivPixelToLatLng(myGPoint);
    
                   //Create the Marker and add it to the Map
                   var marker = new GMarker(myLatLng);
                   map.addOverlay(marker);
                }
    

ここにあるこのコードの実例も作成しました。他にご不明な点がございましたら、お気軽にお問い合わせください。お役に立てば幸いです。

:)

于 2010-05-03T15:07:28.377 に答える