2012-02-28 7 views
0

私はあなたが助けてくれることを願っています。私は2つの問題を抱えていますが、私はjavascriptとGoogle Maps API(v3)にはかなり新しいので、優しくしてください。マーカーの周りのポリゴン/円を削除しますか?

私がやっていることは、住所に基づいて地図にマーカーを追加することです。ジオコーディングは、そのマーカーがどこにあっても、半径5kmで円を描きます。私はサークルを行うためのいくつかのコードを見つけました。また、ジオコーディングも両方ともうまく連携しています。

問題は、マーカーをドラッグして新しい場所にドラッグし、新しい場所にドラッグして、古いサークルを削除し、新しいサークルを描画したいということです。あなたが住所をジオコード場合

上記の例ではhttp://www.gleff.com/test/

を見て、私が達成しようとしているかを理解するには、それはマーカーの位置を中心とする円を描画します。マーカーを別の場所にドラッグして、古いサークルを削除し、新しいサークルを新しいサークルに描画します。現時点では、マーカーを新しい場所にドラッグするだけですが、円はその位置にとどまります。

マーカーをドラッグしてから、円のオーバーレイを削除し、新しい位置に再追加するのが最善の方法です。

問題などにマーカーを追加するなど

が、私は多くのことを試してみたマーカーをドラッグした後、新しい場所でそれを再度追加するサークル(オーバーレイ) 方法問題2を削除する方法1.例えば配列。 var markers = []; し、例としてこれを使用してオーバーレイを消去しようとしています。

http://code.google.com/apis/maps/documentation/javascript/examples/overlay-remove.html

私はおそらく正しい場所にコードを入れていないよので、私は失敗してきました。

私は、JavaScriptの複数の部分でオーバーレイ削除コードを試しましたが、何も動作していないようです。コードを追加しようとしたコードのすべての場所を調べるのではなく、わかりやすくするためにすべての参照を意図的に削除しました。

だから誰でも助けてくれますか?私はちょうどマーカーの周りに円を描画し、そのマーカー(円を含む)を再配置できるようにしたい。しかし、サークルを削除する方法も理解したいのは、最終的には複数のマーカーがあり、マップからマーカー(サークルを含む)を完全に削除したいからです。

注:マーカー自体を削除する方法を検討することはできますが、サークルは削除したくないと確信しています。たとえば住所を2度ジオコードすると、サークルはマップから削除されずに再描画されるのではなく、2度目の描画によって描画が暗くなります。

ご協力いただければ幸いです。 ジェフ

ありがとう:私が変更したコードだけがmain.jsに

答えて

0

ですが、私はAPIに慣れていないんだけど、あなたはで利用可能なイベントで顔をしている可能性がありマーカーのドラッグを開始したとき、およびマーカーをドロップしたときのAPIマーカーの周りの円を描画して削除するイベントリスナーを作成することが、その方法です。申し訳ありませんが、あなたが聞く必要があるイベントをお手伝いできません...

+0

感謝をバインド円オーバーレイ可動マーカーを提供します。私は、マーカーがドラッグされ終わったときにイベントをトリガする方法を工夫しました。理論的にはとにかく..私はまだコードをテストする機会がありませんでした。 dragendマーカーイベント。私はそれを聞くでしょう。しかし、この段階では、現在の円を削除する方法を考えることができないので、新しい場所で再描画することができます。 – gleff

+0

注:私は新しい場所でそれを再描画するのはかなり簡単だと思います。難しい部分は現在の円を削除しています。 – gleff

0

これは..私はより多くの喫緊の課題は、最初に現在の円を除去する能力であると考え、そのためにそれに

function init() { 
    var mapCenter = new google.maps.LatLng(56, -4); 
    var map = new google.maps.Map(document.getElementById('map'), { 
     'zoom': 10, 
     'center': mapCenter, 
     'mapTypeId': google.maps.MapTypeId.ROADMAP 
    }); 

    // Create a draggable marker which will later on be binded to a Circle overlay. 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: new google.maps.LatLng(56, -4), 
     draggable: true, 
     title: 'Drag me!' 
    }); 

    // Add a Circle overlay to the map. 
    var circle = new google.maps.Circle({ 
     map: map, 
     radius: 5000// 5 km 
    }); 
    //Bind circle to marker 
    circle.bindTo('center', marker, 'position'); 
    } 

    // Register an event listener to fire when the page finishes loading. 
    google.maps.event.addDomListener(window, 'load', init); 
+0

素晴らしいもの..ありがとうございました。 – gleff

関連する問題