[ka-Map-users] Function to clear addObjectGeo

Base Bloc chris at basebloc.com
Sun Mar 5 07:45:14 EST 2006


Hi Guys,

 

I'm still plugging away to get some workable functions together to draw
markers with tool-tips and it's hard work as I'm experienced with PHP but
not so hot on JavaScript and DOM so am making all the usual mistakes but
getting there slowly. I now have a system in place that at a curtain scale
places markers within an extended extent of the visible map tiles using
HttpRequest. All is working fine and I currently have the system getting
markers from a database to place markers on the map at the required scale
(1:300000), then adding more markers as the map is panned.

 

The problem I'm encountering now is that although the function is working
correctly as in it won't add markers+tool-tips until the map is zoomed to
1:300000 when the map is zoomed back out above 1:300000 the markers
previously called all remain on screen and as there are over 7000 points you
can imagine what this looks like at 1:4000000.

 

Is there a simple way to clear all of the markers created by addObjectGeo
when the map is zoomed out past a curtain scale or better yet add an event
related to myKaMap.getCurrentScale() so they are only displayed when the
scale in greater than X?

 

Here are the functions I'm using at present:

 

//creates separate image for each marker

function create_marker (img_id, var_1, lat, lon)

            {

            

    document[img_id] = document.createElement( 'img' );

    document[img_id].src = 'images/kamap.gif';

            

                        var bname = navigator.appName;

                        if (bname == "Microsoft Internet Explorer")

               {

                        document[img_id].attachEvent("onmouseover",tool_tip)

 
document[img_id].attachEvent("onmouseout",tool_tip_out)

                        document[img_id].attachEvent("onclick",page_link)

               }

                        else

               {

 
document[img_id].addEventListener("mouseover",tool_tip,false)

 
document[img_id].addEventListener("mouseout",tool_tip_out,false)

 
document[img_id].addEventListener("click",page_link,false)

               }

               

                                    //Sends content and format options to
tool-tip       

                                    function tool_tip(){ 

            

                                                var test_var = var_1;

                                                var text = "My name is "
+test_var+ ", and I'm am now understanding JavaScripts";

                                                overlib(text, STICKY,
MOUSEOFF, CAPTION, 'info')

                                                }

 

    myKaMap.addObjectGeo( myCanvas, lat, lon, document[img_id] );

            

            }

            

            function drawMarkers(){

  Big_Extents = myKaMap.getGeoExpandedExtents();

  myCanvas = myKaMap.createDrawingCanvas( 5000 );

   

  //draw Markers within Big_Extents using kaXMLOverlay or just
addObjectGeo()

 

            var scale = myKaMap.getCurrentScale();

            

            if (scale <= 200000)

            {

            

            //this is where the HttpRequest would normally go, but I have
placed a couple of sample markers to make the script more clear

            create_marker('C02573', 'Box', 511275, 1363860);

            create_marker('C02574', 'Pipe', 515736, 1364260);

 

            }

 

}

            

var scale = myKaMap.getCurrentScale();

 

            

            myKaMap.registerForEvent( KAMAP_SCALE_CHANGED, null, drawMarkers
);

            myKaMap.registerForEvent( KAMAP_EXTENTS_CHANGED, null,
maybeRedraw );

            myKaMap.registerForEvent( KAMAP_MAP_INITIALIZED, null,
drawMarkers );

 

}

 

Sorry there are a few calls to functions there which I have not added above,
I didn't want to do a 500 line cut and paste, once I have it working
properly I will post the full code and related functions.

 

Any suggestions on a fix to this problem would be appreciated.

 

Thanks,

 

Chris

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Christopher Brown

Head of Internet Development

Base Bloc Cambodia

#33, 123, Phnom Penh, Cambodia. 

P.O. Box 2086

www.basebloc.com

Tel (+885) 12 315 302

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/ka-map-users/attachments/20060305/f3dfe2e0/attachment-0001.html


More information about the ka-Map-users mailing list