2012-04-03 11 views
1

タイトルがちゃんと表示されています。私はGoogleマップのapi v3を持っていますが、修正できない厄介な新機能を除いて、Googleマップでドラッグした後にマーカーを隠して表示しても表示されない

togglePOI()を呼び出すボタンをクリックするとマーカーを表示/非表示できますが、マーカーをドラッグして非表示にして再び表示するとマーカーを表示/非表示できます。私がドラッグしていたものを除いて、すべてのマーカーが表示されます。だからドラッグは混乱の中に物事を投げ込むようだ。私はこれ以上の頭痛を持っているので、どんな助けも大いに評価されるでしょう。

は、私はここですべてのコードを貼り付けていますが、あなたがこれを引き起こしていると思います他のいくつかの側面を見たい場合はちょうど尋ねると、病気にそれを置くことはできません。あなたにその位置を保存していない

var latlngs = new google.maps.MVCArray(); 

Map init etc 
Marker creation 

google.maps.event.addListener(locationMarker, "drag", function() 
{ 
    var index = findMarkerIndex(locationMarker, 1); 

    if (index >= 0) 
    { 
    var nLatLng = locationMarker.getPosition(); 
    latlngs.setAt(index, nLatLng); 

    var nLat = nLatLng.lat(); 
    var nLng = nLatLng.lng(); 

    var modifiedLocation = { 
     Latitude: nLat, 
     Longitude: nLng 
    }; 

    //SEND OUTPUT TO SELECT BOX 
    locations[index] = modifiedLocation; 
    document.getElementById('locations').options[index] = new Option('Num: ' + index + ' Pois: ' + nLat + ' - ' + nLng, data[4] + ',' + nLat + ',' + nLng + ',' + data[5]); 
    } 
}); 


//FUNCTION CALLED FROM HTML BUTTON 
function togglePOI() 
{ 
    if(togglePOIBool) 
    { 
     for(var i=0;i<markers.length;i++) 
     { 
     if (markers[i].category == 1) //ONLY HIDE CAT 1 
      markers[i].setMap(null); 
     } 
     togglePOIBool = false; 
     $("#togglePOIButton").val('Aan'); 
    } 
    else 
    { 
     for(var i=0;i<markers.length;i++) 
     { 
     if (markers[i].category == 1)//ONLY SHOW CAT 1 
      markers[i].setMap(map); 
     } 
     togglePOIBool = true; 
     $("#togglePOIButton").val('Uit'); 
    } 
} 

// Returns the index of the marker in the polyline. 
function findMarkerIndex(locationMarker, option) 
{ 
    var index = -1; 

    for (var i = 0; i < markers.length; ++i) 
    { 
    if (markers[i] == locationMarker) 
    { 
     index = i; 
     break; 
    } 
    } 

    return index; 
} 

答えて

0

それはあなたのアプリケーションのためにOKなら、のsetVisible(真/偽)でてsetMapに置き換わります。私はこれを試してみると、あなたの問題を解決します。

http://jsfiddle.net/F3XbV/

+0

OW素敵な、それは再びすべてのマーカーに感謝をロードする必要はありませんので、その道より高速な魅力のように働いた、と。 –

+0

喜んで:) –

0

markers配列は、私はそれがdragイベント内でこれを挿入し、問題を解決することができると思う:

markers[index].setPosition(locationMarker.getPosition()); 
関連する問題