WMS: How is the GetCapabilities parsed ?
2 posters
WMS: How is the GetCapabilities parsed ?
Hi
I was wondering how the GetCapabilities was parsed in case of overlaping layers.
I'll try to explain:
Among other things, the GetCap gives information about each layer, and its associated zoom levels (sort of).
What happens when two layers have exactly the same zoomlevels ? which one is displayed by orux ?
Let's put transparency aside, as it is too complicated. orux currently choose one of the two layers and totally discard the second one. it is never visible, at any zoomlevel, as the first one is always the one chosen for display.
can we do something about it ? like overriding the GetCap to force association of certain layers with certain zoomlevel ?
Technically, I suppose oruxmaps rely on the "ScaleHint" information of the GetCap (?)
Both layers have exactly the same <ScaleHint> parameters, so for now, I'm screwed.
any info on how orux deals with this would be much appreciated
jm
I was wondering how the GetCapabilities was parsed in case of overlaping layers.
I'll try to explain:
Among other things, the GetCap gives information about each layer, and its associated zoom levels (sort of).
What happens when two layers have exactly the same zoomlevels ? which one is displayed by orux ?
Let's put transparency aside, as it is too complicated. orux currently choose one of the two layers and totally discard the second one. it is never visible, at any zoomlevel, as the first one is always the one chosen for display.
can we do something about it ? like overriding the GetCap to force association of certain layers with certain zoomlevel ?
Technically, I suppose oruxmaps rely on the "ScaleHint" information of the GetCap (?)
Both layers have exactly the same <ScaleHint> parameters, so for now, I'm screwed.
any info on how orux deals with this would be much appreciated
jm
yip- Cantidad de envíos : 40
Fecha de inscripción : 2012-01-21
Re: WMS: How is the GetCapabilities parsed ?
yip wrote:Hi
I was wondering how the GetCapabilities was parsed in case of overlaping layers.
I'll try to explain:
Among other things, the GetCap gives information about each layer, and its associated zoom levels (sort of).
What happens when two layers have exactly the same zoomlevels ? which one is displayed by orux ?
Let's put transparency aside, as it is too complicated. orux currently choose one of the two layers and totally discard the second one. it is never visible, at any zoomlevel, as the first one is always the one chosen for display.
can we do something about it ? like overriding the GetCap to force association of certain layers with certain zoomlevel ?
Technically, I suppose oruxmaps rely on the "ScaleHint" information of the GetCap (?)
Both layers have exactly the same <ScaleHint> parameters, so for now, I'm screwed.
any info on how orux deals with this would be much appreciated
jm
Hi,
Note that OruxMaps is not a full wms client; what it does is build a simple query, from selected layers; is the wms server which prepares the image.
To show the available layers, when creating a wms map, OruxMaps simply parses the GetCapabilities and read the layers.
An example of a simple query to get a tile:
http://www.idee.es/wms/MTN-Raster/MTN-Raster?version=1.1.1&request=GetMap&Layers=mtn_rasterizado&Styles=&SRS=EPSG:4326&BBOX=-4.064941,40.688969,-4.053955,40.697299&width=256&height=256&format=image/jpeg
If you know how a wms works, you can play with wms_services.xml file (see oruxmaps manual). It is an alternative option to use wms with OruxMaps.
orux
orux- Cantidad de envíos : 3946
Fecha de inscripción : 2009-07-06
Re: WMS: How is the GetCapabilities parsed ?
Thanks for pointer ! I'm learning the WMS stuff and did'nt know how deep oruxmaps gets into WMS...
Well, I suppose there is no need for oruxmaps to go in real analysis of all the details of the GetCapabilities The <ScaleHint> stuff is a wrong lead
From the syntax in wms_services.xml and "wms" db table, I suppose the <layers> tag is included as a whole, there is no separate GetMap requests for each of the layers (comma separated).
In the example provided (IGN ES) one single layer name (mtn_rasterizado) provides all the topo scales from 1:1 000 000 to 1:50 000 (or so), the server choose the right topo scale to send.
in my case, each scale has a layer: one layer is called Topo50, Topo200, Topo1000, Photo, and so on ... not really clever but eh... I have to specify all layers in the parameter <Layers>.
The server receives the GetMap with all the Layers, discard most, and draw the ones it wants (the most relevant ones)...
For exanple, since both "Topo50" and "Photo" layer may both be equally relevant at a given bbox , it will draw both, and since they are opaque layers, I will see only the last one.
According to the WMS specs, when multiple layers are provided in a single GetMap request, they are drawn in the order provided , each new one on top of the previous, to form the result image.
To add this layer, I created another WMS with only one layer (the one that can't display properly), made an offline map of it at a new zoom, merge the two oruxmapsimages.DB and modified the XML and it works great !
Also, i've played a bit with the image/gif|png, in the wms table (oruxmapsmaps.db) and "addon" WMS parameter, but seems to fallback to png no matter what, i suppose the db binary blobs are PNG.
Anyway, it's useless to go too deep into WMS jungle... like you said it's not a fully featured WMS client
jm
Well, I suppose there is no need for oruxmaps to go in real analysis of all the details of the GetCapabilities The <ScaleHint> stuff is a wrong lead
From the syntax in wms_services.xml and "wms" db table, I suppose the <layers> tag is included as a whole, there is no separate GetMap requests for each of the layers (comma separated).
In the example provided (IGN ES) one single layer name (mtn_rasterizado) provides all the topo scales from 1:1 000 000 to 1:50 000 (or so), the server choose the right topo scale to send.
in my case, each scale has a layer: one layer is called Topo50, Topo200, Topo1000, Photo, and so on ... not really clever but eh... I have to specify all layers in the parameter <Layers>.
The server receives the GetMap with all the Layers, discard most, and draw the ones it wants (the most relevant ones)...
For exanple, since both "Topo50" and "Photo" layer may both be equally relevant at a given bbox , it will draw both, and since they are opaque layers, I will see only the last one.
According to the WMS specs, when multiple layers are provided in a single GetMap request, they are drawn in the order provided , each new one on top of the previous, to form the result image.
To add this layer, I created another WMS with only one layer (the one that can't display properly), made an offline map of it at a new zoom, merge the two oruxmapsimages.DB and modified the XML and it works great !
Also, i've played a bit with the image/gif|png, in the wms table (oruxmapsmaps.db) and "addon" WMS parameter, but seems to fallback to png no matter what, i suppose the db binary blobs are PNG.
Anyway, it's useless to go too deep into WMS jungle... like you said it's not a fully featured WMS client
jm
yip- Cantidad de envíos : 40
Fecha de inscripción : 2012-01-21
Permissions in this forum:
You cannot reply to topics in this forum
|
|