Thanks that works great.

On Mon, May 24, 2010 at 3:34 PM, Michael Geary <[email protected]> wrote:

> You're passing the wrong argument to GEvent.removeListener().
>
> GEvent.addListener() returns a listener object. That's what you need to
> save in your arrays and later pass to GEvent.removeListener().
>
> For example, instead of the two .push() calls you make after adding the two
> listeners, you could push the correct values like this:
>
>     StartListeners.push( GEvent.addListener(
>         ZoneStartFinishMarkers[idStart], "dragend", function(){
>             ...
>         } ) );
>
>     FinishListeners.push( GEvent.addListener(
>         ZoneStartFinishMarkers[idFinish], "dragend", function() {
>             ...
>         } ) );
>
> and change this part of your removal loop:
>
>
>     var pointerS = StartListeners[i];
>     var pointerF = FinishListeners[i];
>     GEvent.removeListener(StartFinishMarkers[pointerS]);
>     GEvent.removeListener(StartFinishMarkers[pointerF]);
>
> to:
>
>     GEvent.removeListener( StartListeners[i] );
>     GEvent.removeListener( FinishListeners[i] );
>
> -Mike
>
>
> On Mon, May 24, 2010 at 12:21 PM, nlraley <[email protected]> wrote:
>
>> Okay, I had a typo in the name of the Listeners I was trying to
>> remove.  I fixed that; however, I am now getting the following error
>> with the main.js for GoogleMaps.  Error line 207 that object doesn't
>> support this property or method.  Any ideas as to what I am doing
>> wrong?
>>
>> On May 24, 1:40 pm, Nathan Raley <[email protected]> wrote:
>> > Okay, I am having some trouble removing my listeners for my markers when
>> I
>> > am in the process of clearing them out of my marker manager.
>> >
>> > I have added my markers as such:
>> >
>> > var StartMarker = new GMarker(point1, ZoneStartMarkerOptions);
>> > var FinishMarker = new GMarker(point2, ZoneFinishMarkerOptions);
>> > ZoneStartFinishMarkers[idStart] = StartMarker; //  Adds to our
>> > ZoneStartFinishMarkers at our ZoneID * 2
>> > GEvent.addListener(ZoneStartFinishMarkers[idStart], "dragend",
>> function(){ //
>> >  Creates the Listener for the StartMarker
>> >         var Point = StartMarker.getPoint(); //  Gets the new location of
>> the
>> > marker
>> > var ZoneID = StartMarker.getTitle(); //  Sets the ZoneID to the ID of
>> the
>> > Zone set in the title above
>> > var pointb = FinishPoints[idFinish]; //  Gets the Point of the Finish
>> Marker
>> > Distance = point1.distanceFrom(pointb); //  Gets the Distance from the
>> > Finish Marker
>> > UpdateString = "S," + ZoneID + Point + Distance; //  Sets the update
>> string
>> > to the new location - S indicates Start} );
>> >
>> > ZoneStartFinishMarkers[idFinish] = FinishMarker; //  Adds to our
>> > ZoneStartFinishMarkers at our ZoneID * 2 + 1
>> > GEvent.addListener(ZoneStartFinishMarkers[idFinish], "dragend",
>> function() { //
>> >  Creates the Listener for the FinishMarker
>> > var Point = FinishMarker.getPoint(); //  Gets the new location of the
>> marker
>> > var ZoneID = FinishMarker.getTitle(); //  Sets the ZoneID to the ID of
>> the
>> > Zone set in the title above
>> > var pointb = StartPoints[idStart]; //  Gets the Point of the Start
>> Marker
>> > Distance = point2.distanceFrom(pointb); //  Gets the Distance from the
>> Start
>> > Marker
>> > UpdateString = "F," + ZoneID + Point + Distance; //  Sets the update
>> string
>> > to the new location - F indicates Finish
>> >
>> > } );
>> >
>> > Afterwards I add the ids of the listeners to an array as such:
>> > StartListeners.push(idStart);
>> > FinishListeners.push(idFinish);
>> >
>> > Now I am trying to call a function to remove the listeners when I am
>> getting
>> > ready to destroy the markers and I am doing it like so:
>> > function ClearStartFinishMM() {
>> >         alert("ClearStartFinishMM");
>> > if(ZoneStartFinishMM) {
>> > alert(StartListeners.length);
>> > alert(FinishListeners.length);
>> > for(var i = 0; i < FinishListeners.length; i++) {
>> > alert("StartListeners pos " + i + " = " + StartListeners[i]);
>> > alert("FinishListeners pos " + i + " = " +FinishListeners[i]);
>> > var pointerS = StartListeners[i];
>> > var pointerF = FinishListeners[i];
>> > GEvent.removeListener(StartFinishMarkers[pointerS]);
>> > GEvent.removeListener(StartFinishMarkers[pointerF]);}
>> >
>> > ZoneStartFinishMM.clearMarkers();
>> >
>> > }
>> >        return;
>> > }
>> >
>> > Now, my array lengths are the length that they are supposed to be, but
>> when
>> > I try to remove the listener I get a StartFinishMarkers is undefined.
>>  Any
>> > ideas?
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "Google Maps API" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>> [email protected]<google-maps-api%[email protected]>
>> .
>> > For more options, visit this group athttp://
>> groups.google.com/group/google-maps-api?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Maps API" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-maps-api%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-maps-api?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google Maps API" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-api%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-api?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-api?hl=en.

Reply via email to