[Mapserver-users] how to use HTML Legends with Steve Lime's DHTML interface

Emilio Mayorga emiliom at u.washington.edu
Sat Dec 13 12:28:43 EST 2003


Hi Martin,

Thanks. You have a very clean and functional site, great job.

The DHTML interface that Steve Lime developed (Landview?) uses a 
crossbrowser API called CBE. Unfortunately, I think it'd be too messy to 
try to use two different but similar API's (DynAPI and CBE) in one 
application. Hopefully Steve will be able to adapt to CBE what you've 
done with HTML Legends using DynAPI. I don't think I'll advance my own 
DHTML adaptation much further than what I've already done, I don't have 
enough free time!

By the way, I'm already familiar with the PANGEA project. I read an 
article that they published last year, and I actually contacted M 
Diepenbroek several months ago to try learn about their data schema. I'm 
glad to hear they'll be using Mapserver.

Cheers,

-Emilio


Martin Weinelt wrote:

> Hello ,
> 
> i happen to use DHTML for an HTML-Legend in a current project. I use an DHTML 
> API (DynAPI, that is) which takes most of the cross browser issues off my 
> back. We do not suport NS4 anymore but Konqueror and Safari.
> 
> all Mpaserver generated ouput is sent to a hidden frame an then copied to the 
> interface. The hidden frame (called 'mapCache')  has the template. Part of 
> the template is a line 
>   <input type="hidden" name="legend" value="[legend]">
> 
> OnLoad the legend is copied to a layer of the interface (dynLeg). (A widget in 
> this case):
> 
> dynLeg.setContent(<table 
> width=\"100%\">"+top.mapCache.document.forms[0].legend.value+"</table>");
> 
> setContent is a DynAPI method to set the content of a layer (some HTML in most 
> cases)
> 
> Take a look at http://mapserver.pangaea.de/ and if the legend is of interest 
> to you , I'll post  code snippets
> 
> Cheers, Martin
> 
> 
> On Friday 12 December 2003 05:06, Emilio Mayorga wrote:
> 
>>Thanks, Steve. That's great to hear.
>>
>>I don't have my trusty DHTML book with me, so I can't research this too
>>much right now. I'll do it this weekend (maybe). I want to see if
>>there's a way to create a new DOM node where the HTML can be brought in
>>from a URL (in this case, the dynamically generated CGI statement with
>>mode=legend), then inserted into a DIV via innerHTML, or something like
>>that.
>>
>>Meanwhile, I experimented with an IFRAME. It's not ideal (iframes seem
>>inelegant, in principle!), but I got it to work. If you're curious, my
>>test site is here:
>>http://basin.ocean.washington.edu/mapserv/mapache/eng/main.html
>>It's a very rudimentary site at this point. I don't know how to use the
>>CBE library yet, unfortunately. I'd like to.
>>
>>BTW, I took a quick look at cbs.sportsline.com. Without trying to
>>understand everything, it looks like it uses an IFRAME element, too.
>>
>>Here are the relevant bits that I implemented:
>>** In the HTML page:
>><iframe id="legendiframe" src="blank.html" width="150" height="200"
>>scrolling="auto" frameborder="0">
>>[text for browsers that don't support iframes.]
>></iframe>
>>
>>** Then I have this javascript code:
>>function postdraw() {
>>   // update the legend
>>   var getlegendiframe = document.getElementById('legendiframe');
>>   getlegendiframe.src = MapServer + "?map=" + mapfile +
>>"&mode=legend&mapext=0+0+" + (ms.extent[2] - ms.extent[0]) + "+" +
>>(ms.extent[3] - ms.extent[1]) + "&mapsize=" + ms.width + "+" + ms.height;
>>}
>>
>>I hope this is helpful to you. I might call it quits and settle with
>>this kludge, but I'd love to hear what you come up with.
>>
>>-Emilio Mayorga
>>Central American Ecology & Environment
>>garrobo.org
>>
>>Steve Lime wrote:
>>
>>>Hi Emilio: I'm working on something similar. Just haven't had time to
>>>make progress. Basically I was thinking of a dLegend object. Like the
>>>dBox interface I would use an anchor image to place a DTHML layer
>>>containing (with scrollbars) on a page. The layer would contain exactly
>>>what you mention below, an HTML legend. There's a good example of such a
>>>control at cbs.sportsline.com, the scores at a glance tool. I want to
>>>implement it using the same library (CBE) as dBox uses.
>>>
>>>Bottom line, I have no solution for you, only an idea. If you make
>>>progress please let me know.
>>>
>>>Steve
>>>
>>>Stephen Lime
>>>Data & Applications Manager
>>>
>>>Minnesota DNR
>>>500 Lafayette Road
>>>St. Paul, MN 55155
>>>651-297-2937
>>>
>>>
>>>>>>Emilio Mayorga <emiliom at u.washington.edu> 12/11/2003 2:49:02 PM
>>>
>>>I've implemented Steve Lime's DHTML interface with dBox (javascript
>>>rubber band). It's working great (thanks!).
>>>
>>>Now I'd like to add an HTML legend. I can get my map file to generate
>>>the HTML for the legend using a stand-alone CGI line; that seems to
>>>work
>>>fine. But I can't figure out how to use that line to insert the HTML
>>>into my web page.
>>>
>>>I know some DHTML/DOM/javascript. What I'd like to know is how to take
>>>the result of something like:
>>>http://mysite/cgi-bin/mapserv?map=/var/www/html/mymapfile.map&mode=legend
>>>and insert it into a web page, without using Frames.
>>>
>>>Thanks for your help. Cheers,
>>>
>>>-Emilio Mayorga
>>>
>>>
>>>_______________________________________________
>>>Mapserver-users mailing list
>>>Mapserver-users at lists.gis.umn.edu
>>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>
>>_______________________________________________
>>Mapserver-users mailing list
>>Mapserver-users at lists.gis.umn.edu
>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
> 
> 




More information about the mapserver-users mailing list