Adrian Custer wrote:
Hey all,

in trying to build a map from scratch I've run into a number of
questions.


*) The Iresolve (and friends) mechanism seems to be based on the
extensive use of URL/URI. e.g. the URL in the constructor of the
MemoryServiceImpl(). I can see that it's value is
http://localhost/scratch/ but what is this supposed to be? Does each
'resolveable' instance get its own URL so that the whole system is
dependent on programmer's tracking these URLs?
We are supposed to change this to a URI - URL actually hits the web to figure out an IP address for its hashcode. We are simply using this to "locate" the resource - for memory datastore localhost seemed to describe the machine it
was on, and we were going to name them "Scracth1" "Scratch2" etc...

The idea is that this is a temporary layer to mess around on, or for an operation to store result on. And the user can
save the layer out to a shapefile/database/etc if they like what they see.

And yes looking up data in the catalog requires a URI, the GISApplication stores this information out with each project (along with any additional connection parameters). The URI is also supposed to be used by a security module to retrieve any login credentials (so they are not stored out with the project file
and shared between users accidentally).
The explanation currently has a bunch of references to how Eclipse does
things without any link to the docs where that is explained. Some extra
links or documentation is needed to explain the idea and the relevance
of the URL in the resolve system.
Can you link to the exact page? Or are you taking about the javadocs? I assume the documentation refers
to IResource ...
*) What are the differences between IService and IGeoResource? From the
recent doc, I see there's a split between the two but I don't understand
the relevance of the split. IService appears to be more generic and
useable for information whereas IGeoResource must be used for actual
geographic data. Is that the right idea?
Yes that is pretty good.
IService is a handle to the service where the data comes from (a file on disk, a sever on the web etc...) IGeoResource is a handle to the data itself, often available as a FeatureStore or a WMS Layer.
*) What's the terminological difference between a Coordinate Reference
System (CRS) and a Spatial Reference System (SRS)? While the use of all
these terms around the web is generally sloppy I have not yet been able
to figure out a reasonable distinction between these two ideas.
CRS has a formal definition -it is a real object that defines what the heck is going on with a data set.

Usually defined as WKT, or a short definition "EPSG:4326" where EPSG is the name of an authority. In the case of EPSG the authority publishes a database in which the number 4326 means
something.

In short CRS can be used to understand what the data is.

SRS means almost nothing, it is supposed to indicate a CRS - somehow. SRS may be the SRID used by an oracle database, it may be WKT, it may be an EPSG code (just the raw number). According to the specifications it is a URI of some format
I have never seen used.

A super conservative response is this: SRS can be used with the service that gave it to you. As an example a WFS advertises data in a SRS you can ask for data in that SRS. A pragmatic response is this: uDig makes a series of educated guesses (if it starts with EPSG or AUTO or AUTO2 then that is pretty good).

Does that help?
Jody
*) What elements in the data stack have their own CRS info?
Data has a CRS, GIS data with out a CRS is like a distance without "meters" or "feet".
A displayed map must have its own CRS with all input layers transformed
to that when added. Presumably, by default, the map uses a CRS of one of
the initial layers added when crated but it must also be possible to
create a map with a programmer defined CRS.
The Map actually is being lazy - it has a projection. One of the things needed to understand GIS data (and thus defined inside a CRS) is a projection. So the Map is holding onto a full CRS object (because
people understand those), but only using the projection part for display.

As a consequence several CRS instnaces with the same projection would look identical as far as the
Map is concerned.

Once your map is created you can adjust the CRS - it is part of the viewport model (and is used to understand the viewport model's bounding box).
In the layer stack, where does the feature's CRS get stored? As one of
the attributes of Feature? As one of the Attribute of FeatureType? While
I can now create a layer from scratch, I've not yet figured out where to
add the CRS in the construction process.
Okay I can help there, the CRS for a feature is stored in the FeatureType, explicitly in the GeometryAttributeType (once again without this
metadata about the Geometry the feature would mean anything).
Are there other CRS's stored? What docs explain this stuff?
Geotools tutorials. And some slides in the uDig training after I had a bit of experience. I think the Mapping Hacks book has a good section, but
I will ask someone else to confirm that.

Jody

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to