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

Steve Lime steve.lime at dnr.state.mn.us
Mon Dec 15 13:16:18 EST 2003


Great start! There are kinda 2 legends on that page. What I need is one,
the layer control and symbology all in one. That would be idea.

Steve

>>> Emilio Mayorga <emiliom at u.washington.edu> 12/13/2003 11:28:43 AM
>>>
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 
> 
> 

_______________________________________________
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