Markus,
yes, i will announce it on the list but first i would like
to make it work for Internet Explorer, be sure its reasonably stable
(its been working for a week, but i didn't tested it as it should have
been), get some money from a couple of governative institutions which
could have some problems understaning why they have to pay for something
im going to give away for free. (They didn't grasp the open source idea)
And lastly id like to ask you some questions and talk about some aspect of
the thing. I think that when i release it it should be at least in
a semidefinitive form.
I beg you to read the following and give your opinion.
Architecture as it is now:
There is a pool of shared memory, in which is stored all the data needed
for plotting the map and answering word and spatial queries.
Every CGI attach the shared memory, perform various operations
(possibly updating expired data) end detach the segment.
As id like it:
Theres a "master demon" which allocates the memory and is in charge of
updating the data. The requests could be served by forked "childrens"
(tricky to deliver the image) or dirctly by CGI (tricky to pass memory).
Configuration:
I send you the configuration files so that you can understand what im
talking about.
The principal web page and the javascript must be modified when working
with a different number of themes or when configuring the search.
I haven't found a decent way to standardize it.
Im quite proud of the auto-resizing map when resizing the window.
Probably the most difficult thing in this project
The search page and the info page: theese are templates whith a couple
of ad-hoc tags to tell the CGI how to display the data.
Every map can have a differently customized page (you see only a table in
the demo, but i could give out informations in any way).
Advantage: everyone can choose its graphic look and display information
in the most flexible way.
Problem: the syntax i use to tell the CGI where to put the requested data
it is not standard, and certainly not a elegant. Proposals?
A big messy configuration file:
Actually in a ad-hoc, absolutely non standard, a bit scary, and somewhat
ugly format. Have a look at it, its commented.
Wouldn't it be better to write it in XML?
Missing: the mask attribute for the lines is not used (as it is planned)
so that one would be able to draw roads and rivers in an appropriate way.
Question: its not clear how to deal with isles. Actually i use this
pproach: if an area contains another i consider it a hole and strip it.
Im not satisfied of it. When the original creators of grass though about
the question they had something in mind.
Im not smart enough to understand it looking at the .h files.
Database issues:
I'm using Informix and Postgres libraries (MySQL planned) for processing
the database queryes needed for assigning attributes and for searches.
This unnaturally forces the poor unfortunate configurator to write
explicitly the queries. This gives a great deal of flexibility to the
tool, maybe there's some standard on how tables record data associated to
grass maps, which could simplify the work?
I did not investigated so much the problem, my fault.
Nice thing though, you can use an intermediate table for associating
objects to "keys" and be able to use remote databases which do not need to
be related to your map.
Various issues:
CGI's being runned by apache cannot set some enviroment varibles due to
a uid and effective uid check in grass5.0beta/src/libes/gis/mapset_msc.c
I find it a bit silly that i cannot use as default mapset a mapset im not
the owner when i an change it anytime later.
I had to disable the check. But its a (minor) problem.
Security issues:
I did not thought of them at all, at the moment theres not even a limit on
the dimensions of the image one could ask to the server.
Performance Issues:
This is a demo and not being masochist i did not use heavy maps on it
(except for the raster of Pisa (which you may have not seen: it displays
onlt under a certain scale). But big map files can pose a serious problem.
This tool allow you to circunvent the problem creating maps with different
details (w.prune for vectorial maps for example) and displaying the right
one at the right scale in the same layer so that the final user do not
even notice.
This is obviously a rough and ugly hack.
The right answer is called multiresolution.
I know theres some good work with 3d vectorial meshes. I think it can be
ported into 2d with some effort.
I know there's been some good work in the raster field too. I do not know
its there's any piece of open source code but something could be done.
Thats all? Well i didn't sleep all the night (im trying to get a
Ph.D. in Math also, so im quite busy), so i may miss something.
Forgive my english, if you can.
Federico
P.S. I did it all alone, and i do not see anyone who could help
me in this task. I feel a bit scared at the sheer amount of work awaiting
for me.
P.P.S. The original idea of this work is due to Mauro Bueti, currently
working as System Administrator at the "Soprintendenza ai beni
culturali" of Pisa. He provided (instaled and mantained) a computer,
and lured me into not giving up promising me money, fame and womens.
On Fri, 13 Oct 2000, Markus Neteler
wrote:
Federico,
wow, this is impressive! I suggest you announce it on
grasslist@baylor.edu
and I will put a link onto our link page?!What do you think?
Markus
(attachments)
pisa (6.81 KB)
search.html (1.15 KB)
info.html (251 Bytes)