[ka-Map-users] Function to clear addObjectGeo
Sepehr Sadeghi
sadegs at alum.rpi.edu
Sun Mar 5 10:26:31 EST 2006
Chris,
I am not sure if the rest of your code handles this situation, but when I
use the 'STICKY' option with overLib and pan the map, the opened tooltip
stays in it's position while the marker and map move.
I know there is a way to change the location of the tooltip, which is
probably best changed upon an event action inside kaMap.
any thoughts?
-Sepehr
On 3/5/06, Stephen Woodbridge <woodbri at swoodbridge.com> wrote:
>
> Chris,
>
> I'm not sure how to do this or if it is possible, but it would seem like
> you would want to have each marker destroy itself if you panned outside
> the extended extent or changed zoom scale. Otherwise you will have a
> object leak and continue to create these markers as long as the user has
> the page open.
>
> One way to do it might be to make a structure the contains all the
> objects that your create and a variable the describes the valid context
> that were created for. Then before you add new markers for an context
> that does not match the save context, you can destroy all the old
> markers before adding the new markers.
>
> Just an idea.
> -Steve W.
>
> Base Bloc wrote:
> > 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
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > ka-Map-users mailing list
> > ka-Map-users at lists.maptools.org
> > http://lists.maptools.org/mailman/listinfo/ka-map-users
>
> _______________________________________________
> ka-Map-users mailing list
> ka-Map-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/ka-map-users
>
--
..:: Sepehr Sadeghi ::..
..:: sadegs at alum.rpi.edu ::..
..:: 603-205-4402 ::..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/ka-map-users/attachments/20060305/520d8c24/attachment.html
More information about the ka-Map-users
mailing list