2016-04-04 22 views
0

私のGoogleマップから1つのマーカーを削除したいが、動作させられないようだ。私はさまざまな答えを見つけましたが、すべて.setMap(null)をマーカーに使用するように指示していますが、動作させることはできません。Googleマップの削除/移動マーカー(jquery-ui-maps)

$map_canvas = $('#map_canvas'); 
var youreHere_Marker; 
function centerMapToAddress(address) { 
    geocoder.geocode({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      if(typeof youreHere_Marker!=="undefined"){ 
       youreHere_Marker.setMap(null); 
      } 
      youreHere_Marker = $map_canvas.gmap('addMarker', {'position': results[0].geometry.location.lat()+','+results[0].geometry.location.lng(), 'bounds': true}); 
     } 
    }); 
} 

TypeError: youreHere_Marker.setMap is not a functionが得られます。私の知る限り、変数youreHere_Markerはメソッド.setMap()を持っていませんが、私がconsole.log(youreHere_Marker)を実行してオブジェクトを検査すると、そのメソッドを見ることができます。

マップには、MarkerClustererを介してさらに多くのマーカーがあります。それらは手つかずのままにする必要があります

私は近くに感じている、誰かが私を正しい方向に向けることができますか?

編集:私も.setPosition()と同じエラーを試みました。私は間違った変数を使用していると仮定していますが、正しく参照する方法がわかりません。

+0

あなたはフィドルを作ることができますか? –

+0

これは大きなプロジェクトですが、これは関連する部分です。これにより、削除したいマーカーが1つ追加されます。 – Martijn

答えて

0

さて、私はjQueryのせずにGoogleマップで働いていたが、私は次のコードを使用してマーカーを取得する必要があることを(私はわからないんだけど、あなたが試すこと)だと思う:

youreHere_Marker = $map_canvas.gmap('get', 'markers')[0]; 
youreHere_Marker.setMap(null); 

私は」本当にあなたが望むことをするかどうか分からないが、これがうまくいく可能性がある:)
あなたの問題を解決することを願っています。
ありがとうございます。 :)

+0

本当にわからないのですが、これは仕事でした。 '.gmap( 'get'、 'marker')[0]'が最後に追加されたマーカーを返すと仮定すると正しいでしょうか? – Martijn

+0

@Martijn私はjqueryの-UI-マップのためのドキュメントを見つけることができませんでしたが、私はいくつかのソースを発見し、GMAP(「addMarkerが」、....すでに作成されたマーカーを返さない、そしてそれを、私たちを取得することを考えましたgmap( 'get'、 'marker'など)のような別のメソッドを使用する必要がありますが、最後のメソッドではすべてのマーカーが返されるため、最初のメソッドを返すだけです) –

+0

解決策としてマークされています。あなた自身で十分に説明してください、より多くのアップフォースを得るでしょう:) – Martijn

関連する問題