i only used this funciton because i didn't notice you could accomplish the same (over all canvases) by sending no args to removeObject. a simple change would be to allow the second arg to the existing removeObject() specify a canvas....
<br>-b<br><br><br><br><br><div><span class="gmail_quote">On 3/22/06, <b class="gmail_sendername">Paul Spencer</b> &lt;<a href="mailto:pspencer@dmsolutions.ca">pspencer@dmsolutions.ca</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
not sure if I commented on this before, but it should be noted that a<br>function like this already exists (removeObject) but it doesn't allow<br>you to clear all the overlays on a single canvas, it only allows<br>removing individual overlays or all overlays.
<br><br>Is there interest in adding this function?&nbsp;&nbsp;I don't see a need for it<br>as I usually manage the overlays separately from kaMap and thus have<br>have a reference to the things that need to be removed.<br><br>Cheers
<br><br>Paul<br><br>On 5-Mar-06, at 12:56 PM, Brent Pedersen wrote:<br><br>&gt; hi chris, another utility function you'll use:<br>&gt;<br>&gt; kaMap.prototype.removeOverlays = function(canvas){<br>&gt; len = this.aObjects.length
;<br>&gt; for(i=0;i<br>&gt; var item = this.aObjects[i];<br>&gt; if(item.canvas == canvas){<br>&gt; canvas.removeChild(item);<br>&gt; item.canvas = null;<br>&gt; item = null;<br>&gt; this.aObjects.splice(i--,1);<br>&gt; len = 
this.aObjects.length;<br>&gt; }<br>&gt; }<br>&gt; }<br>&gt;<br>&gt; then call myKaMap.removeOverlays(myCanvas) at the start of<br>&gt; drawMarkers. because otehrwise, you jsut keep adding new markers<br>&gt; without getting rid of the old ones. and it will get rid of them
<br>&gt; when you're not at the scale you want.<br>&gt;<br>&gt; also as you have it now, you're creating a new canvas every time<br>&gt; drawMarkers is called. probably bad.<br>&gt;<br>&gt; i'm not sure about the memory leakage of any of this...
<br>&gt; -b<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; On 3/5/06, Base Bloc &lt; <a href="mailto:chris@basebloc.com">chris@basebloc.com</a>&gt; wrote:<br>&gt; Hi Guys,<br>&gt;<br>&gt;<br>&gt; I'm still plugging away to get some workable functions together to
<br>&gt; draw markers with tool-tips and it's hard work as I'm experienced<br>&gt; with PHP but not so hot on JavaScript and DOM so am making all the<br>&gt; usual mistakes but getting there slowly. I now have a system in
<br>&gt; place that at a curtain scale places markers within an extended<br>&gt; extent of the visible map tiles using HttpRequest. All is working<br>&gt; fine and I currently have the system getting markers from a<br>&gt; database to place markers on the map at the required scale
<br>&gt; (1:300000), then adding more markers as the map is panned.<br>&gt;<br>&gt;<br>&gt; The problem I'm encountering now is that although the function is<br>&gt; working correctly as in it won't add markers+tool-tips until the
<br>&gt; map is zoomed to 1:300000 when the map is zoomed back out above<br>&gt; 1:300000 the markers previously called all remain on screen and as<br>&gt; there are over 7000 points you can imagine what this looks like at
<br>&gt; 1:4000000.<br>&gt;<br>&gt;<br>&gt; Is there a simple way to clear all of the markers created by<br>&gt; addObjectGeo when the map is zoomed out past a curtain scale or<br>&gt; better yet add an event related to myKaMap.getCurrentScale
() so<br>&gt; they are only displayed when the scale in greater than X?<br>&gt;<br>&gt;<br>&gt; Here are the functions I'm using at present:<br>&gt;<br>&gt;<br>&gt; //creates separate image for each marker<br>&gt;<br>&gt; function create_marker (img_id, var_1, lat, lon)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id] = document.createElement( 'img' );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].src = 'images/kamap.gif';<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var bname = 
navigator.appName;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bname == &quot;Microsoft Internet Explorer&quot;)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].attachEvent<br>&gt; (&quot;onmouseover&quot;,tool_tip)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].attachEvent<br>&gt; (&quot;onmouseout&quot;,tool_tip_out)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].attachEvent<br>&gt; (&quot;onclick&quot;,page_link)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].addEventListener<br>&gt; (&quot;mouseover&quot;,tool_tip,false)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].addEventListener<br>&gt; (&quot;mouseout&quot;,tool_tip_out,false)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[img_id].addEventListener<br>&gt; (&quot;click&quot;,page_link,false)
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Sends content and format<br>&gt; options to tool-tip<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function tool_tip(){
<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var test_var = var_1;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var text = &quot;My name<br>&gt; is &quot; +test_var+ &quot;, and I'm am now understanding JavaScripts&quot;;
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overlib(text,<br>&gt; STICKY, MOUSEOFF, CAPTION, 'info')<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; myKaMap.addObjectGeo
( myCanvas, lat, lon, document[img_id] );<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function drawMarkers(){<br>&gt;<br>&gt;&nbsp;&nbsp; Big_Extents = myKaMap.getGeoExpandedExtents();<br>&gt;<br>&gt;&nbsp;&nbsp; myCanvas = 
myKaMap.createDrawingCanvas( 5000 );<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp; //draw Markers within Big_Extents using kaXMLOverlay or just<br>&gt; addObjectGeo()<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var scale = myKaMap.getCurrentScale();
<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (scale &lt;= 200000)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //this is where the HttpRequest would normally go, but<br>&gt; I have placed a couple of sample markers to make the script more clear
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; create_marker('C02573', 'Box', 511275, 1363860);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; create_marker('C02574', 'Pipe', 515736, 1364260);<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;<br>&gt;<br>&gt; }<br>
&gt;<br>&gt;<br>&gt; var scale = myKaMap.getCurrentScale();<br>&gt;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myKaMap.registerForEvent( KAMAP_SCALE_CHANGED, null,<br>&gt; drawMarkers );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myKaMap.registerForEvent
( KAMAP_EXTENTS_CHANGED, null,<br>&gt; maybeRedraw );<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myKaMap.registerForEvent( KAMAP_MAP_INITIALIZED, null,<br>&gt; drawMarkers );<br>&gt;<br>&gt;<br>&gt; }<br>&gt;<br>&gt;<br>&gt; Sorry there are a few calls to functions there which I have not
<br>&gt; added above, I didn't want to do a 500 line cut and paste, once I<br>&gt; have it working properly I will post the full code and related<br>&gt; functions.<br>&gt;<br>&gt;<br>&gt; Any suggestions on a fix to this problem would be appreciated.
<br>&gt;<br>&gt;<br>&gt; Thanks,<br>&gt;<br>&gt;<br>&gt; Chris<br>&gt;<br>&gt;<br>&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>&gt;<br>&gt; Christopher Brown<br>&gt;<br>&gt; Head of Internet Development<br>&gt;<br>&gt; Base Bloc Cambodia
<br>&gt;<br>&gt; #33, 123, Phnom Penh, Cambodia.<br>&gt;<br>&gt; P.O. Box 2086<br>&gt;<br>&gt; <a href="http://www.basebloc.com">www.basebloc.com</a><br>&gt;<br>&gt; Tel (+885) 12 315 302<br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________
<br>&gt; ka-Map-users mailing list<br>&gt; <a href="mailto:ka-Map-users@lists.maptools.org">ka-Map-users@lists.maptools.org</a><br>&gt; <a href="http://lists.maptools.org/mailman/listinfo/ka-map-users">http://lists.maptools.org/mailman/listinfo/ka-map-users
</a><br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; ka-Map-users mailing list<br>&gt; <a href="mailto:ka-Map-users@lists.maptools.org">ka-Map-users@lists.maptools.org</a><br>&gt; <a href="http://lists.maptools.org/mailman/listinfo/ka-map-users">
http://lists.maptools.org/mailman/listinfo/ka-map-users</a><br><br>+-----------------------------------------------------------------+<br>|Paul Spencer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:pspencer@dmsolutions.ca">pspencer@dmsolutions.ca
</a>&nbsp;&nbsp; |<br>+-----------------------------------------------------------------+<br>|Applications &amp; Software Development&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>|DM Solutions Group Inc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.dmsolutions.ca/|">
http://www.dmsolutions.ca/|</a><br>+-----------------------------------------------------------------+<br><br><br><br><br></blockquote></div><br>