[mapserver-users] tinyows
Alexandre Dubé
adube at mapgears.com
Mon Nov 12 08:05:58 PST 2012
Anna,
What does your C:\ms4w\Apache\logs\tinows.log file contain ?
Also yeah you should use --post-data='<wfs:GetFeature...' and not
--post-data="<wfs:GetFeature...". If your dataset isn't too big, you
could remove the <ogc:Filter> node. Also, try replacing
xmlns:feature="http://127.0.0.1/" by xmlns:tows="http://127.0.0.1/".
HTH,
Alexandre
On 12-11-12 10:31 AM, aho wrote:
> Hi Alexandre,
>
> I already reinstalled pyhton and made the configuration of the apache
> server again. At least one thing I can exclude - specially because
> sooner or later I have to include it in another project which needs to
> run on a certain port. Anyhow... I also installed the wget and you are
> right, it helps a lot.
> I took the GetFeature xml from chrome and constructed the following line:
>
> wget "http://localhost/cgi-bin/tinyows.exe" --post-data="<wfs:GetF
> eature xmlns:wfs="http://www.opengis.net/wfs" service="WFS"
> version="1.0.0" outp
> utFormat="application/json"
> xsi:schemaLocation="http://schemas.opengis.net/wfs/1
> .0.0/WFS-transaction.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <wfs:Query typeName="feature:frida"
> xmlns:feature="http://127.0.0.1/"><ogc:Filte
> r
> xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:PropertyName>the_geom</o
> gc:PropertyName><gml:Box xmlns:gml="http://www.opengis.net/gml"
> srsName="EPSG:31
> 467"><gml:coordinates decimal="." cs="," ts=" ">3413084,5782000
> 3457916,5806000<
> /gml:coordinates></gml:Box></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature>
>
> " --header="Content-Type: application/xml; charset=UTF-8" -O C:/test.txt
>
> wget returned:
>
> SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
> syswgetrc = C:\OSGeo4W\GnuWin32/etc/wgetrc
> --2012-11-12 16:17:16-- http://localhost/cgi-bin/tinyows.exe
> Resolving localhost... 127.0.0.1, ::1
> Connecting to localhost|127.0.0.1|:80... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: unspecified [application/xml]
> Saving to: `C:/test.txt'
> [ <=> ] 503 --.-K/s in 0s
>
> 2012-11-12 16:17:16 (11.4 MB/s) - `C:/test.txt' saved [503]
> --2012-11-12 16:17:16--
> http://%3E3413084,5782000%203457916,5806000%3C/gml:coor
> dinates%3E%3C/gml:Box%3E%3C/ogc:BBOX%3E%3C/ogc:Filter%3E%3C/wfs:Query%3E%3C/wfs:
>
> GetFeature%3E
> Resolving >3413084,5782000 3457916,5806000<... failed: No data record
> of request
> ed type.
> wget: unable to resolve host address `>3413084,5782000 3457916,5806000<'
> FINISHED --2012-11-12 16:17:17--
> Downloaded: 1 files, 503 in 0s (11.4 MB/s)
>
>
> I have really no idea why it is using the coordinates of the bounding
> box for the host?! I thought it would be a problem of wget and the
> quotation marks... but changing that to ' did not solve the problem.
> In my test.txt is still the same response: invalid xml. Nothing else
> unfortunately. I think its a problem in my openlayers configuration -
> I check the spatial reference again; maybe I can also set the bbox or
> something. I will see...
>
> If you or anyone else has an idea I will be very happy!
> Anna
>
> Am 11/12/2012 2:42 PM, schrieb Alexandre Dubé:
>> Hi Anna,
>>
>> While working locally, you don't need to set an
>> OpenLayers.ProxyHost. Put comments // in front of it for now.
>>
>> tinyows-1.0.0-weather-sites.fcgi -> copy your tinyows.exe file
>> giving it the name you want. In Linux, you could use a symbolic
>> link, like I did. Here's the apache config for it. It does 2 things
>> : it enables FastCgi and set the TINYOWS_CONFIG_FILE env variable for
>> this link to use a specific .xml config file.
>>
>> ###
>> FastCgiServer /usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi
>> -initial-env
>> TINYOWS_CONFIG_FILE=/opt/labs/weather-sites/etc/tinyows/config.xml
>> ScriptAlias "/weather-sites-tinyows-1.0.0.fcgi"
>> "/usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi"
>> ###
>>
>> Once you start using wget, the idea is to edit the xml GetFeature
>> request sent and/or the config.xml file as you try it to quickly see
>> what causes things to not work. Point to tinyows for now, you your
>> proxy (yet), i.e. make your tinyows work first.
>>
>> Best regards,
>>
>> Alexandre
>>
>>
>> On 12-11-12 04:05 AM, aho wrote:
>>> Hi Alexandre,
>>>
>>> thanks for the good hints! This is really great! I think its not my
>>> tinyows.xml or the Openlayers... but the error message tells
>>> something else somehow... :(... I changed it to the following:
>>> xml configuration of tinyows:
>>>
>>> <tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows.exe"
>>> schema_dir="C:\ms4w\apps\tinyows\schema\"
>>> log="C:\ms4w\Apache\logs\tinows.log" log_level="15">
>>> <pg host="127.0.0.1" user="postgres" password="postgres"
>>> dbname="tinyows" port="5432"/>
>>> <metadata name="TinyOWS Server"
>>> title="TinyOWS Server - WFS-T Frida Service" />
>>> <contact name="TinyOWS Server"
>>> site="http://www.tinyows.org/"
>>> email="tinyows-users at lists.maptools.org" />
>>> <layer retrievable="1"
>>> writable="1"
>>> ns_prefix="tows"
>>> ns_uri="http://127.0.0.1/"
>>> name="frida"
>>> title="Frida Parks" />
>>> </tinyows>
>>>
>>> and the OpenLayers code:
>>>
>>> map = new OpenLayers.Map('map', {
>>> projection: new OpenLayers.Projection("EPSG:31467"),
>>> units: "m",
>>> maxResolution: "auto",
>>> maxExtent: new
>>> OpenLayers.Bounds(3427000,5788000,3444000,5800000),
>>> controls: [
>>> new OpenLayers.Control.PanZoom()
>>> ]
>>> });
>>> var osm = new OpenLayers.Layer.WMS(
>>> "OSM by Omniscale WMS",
>>> "http://osm.omniscale.net/proxy/service",
>>> {layers: 'osm', format: 'image/jpeg'},
>>> {projection:"EPSG:31467", units: "m", maxResolution: "auto",
>>> maxExtent: new OpenLayers.Bounds(3427000,5788000,3444000,5800000)}
>>> );
>>> var saveStrategy = new OpenLayers.Strategy.Save();
>>> saveStrategy.events.register("success", '', showSuccessMsg);
>>> saveStrategy.events.register("fail", '', showFailureMsg);
>>> var wfs = new OpenLayers.Layer.Vector("Editable Features", {
>>> strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
>>> projection: new OpenLayers.Projection("EPSG:31467"),
>>> protocol: new OpenLayers.Protocol.WFS({
>>> version:"1.1.0",
>>> url: "http://127.0.0.1/cgi-bin/tinyows.exe",
>>> featureType: "frida",
>>> outputformat:"application/json",
>>> readFormat: new OpenLayers.Format.GeoJSON(),
>>> featureNS: "http://127.0.0.1/",
>>> geometryName: "the_geom"
>>> })
>>> });
>>> map.addLayers([osm, wfs]);
>>>
>>> map.zoomToMaxExtent();
>>>
>>> The layer is actually in 31467 - I want to get it working for the
>>> frida parks example. I reduced everything else in my javascript file.
>>>
>>> But I think I have a problem with my configuration. I am setting the
>>> following in OpenLayers: OpenLayers.ProxyHost =
>>> "/cgi-bin/proxy.cgi?url="; and I saw that you were actually refering
>>> to a fcgi file in your config.xml. I thought I could define there
>>> the path to the tinyows.exe like this:
>>> http://127.0.0.1/cgi-bin/tinyows.exe - do I also give the proxy there?
>>> Could you send me the content of your
>>> weather-sites-tinyows-1.0.0.fcgi file? I have to say that I can´t
>>> follow your instructions for setting the environment variable - I
>>> made that via the control Panel :) - and the ScriptAlias.
>>>
>>> I have to install the wget first on windows, but thanks for that
>>> hint - I will try it after the restart now!
>>>
>>> Thanks in advance,
>>> Anna
>>>
>>>
>>>
>>>
>>>
>>> Am 11/9/2012 2:50 PM, schrieb Alexandre Dubé:
>>>> ### The apache config used to bind TinyOWS to this config using a
>>>> different url
>>>> FastCgiServer /usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi
>>>> -initial-env
>>>> TINYOWS_CONFIG_FILE=/opt/labs/weather-sites/etc/tinyows/config.xml
>>>> ScriptAlias "/weather-sites-tinyows-1.0.0.fcgi"
>>>> "/usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi"
>>>
>>
>>
>
--
Alexandre Dubé
Mapgears
www.mapgears.com
More information about the MapServer-users
mailing list