Hi Andreas,I checked everything now and I'm sufficiently sure the system is using the correct Mapserver version. I also checked the binary path and everything seems fine. I'm still not getting the same output as you. I get an error message however:
Content-Type:: command not found.
Do I need to compile OGR, too? Or am I missing a compile option? Sorry, I'm really not experienced in this at all.
Here is my configuration:
cmake -DCMAKE_INSTALL_PREFIX=/opt \
-DCMAKE_PREFIX_PATH="/usr/local;/opt" \
-DWITH_CLIENT_WFS=ON \
-DWITH_CLIENT_WMS=ON \
-DWITH_OGR=ON \
-DWITH_CURL=ON \
-DWITH_SOS=ON \
-DWITH_PHP=0 \
-DWITH_PYTHON=ON \
-DWITH_SVGCAIRO=OFF \
-DWITH_ORACLESPATIAL=0 \
-DWITH_MSSQL2008=OFF \
-DWITH_THREAD_SAFETY=ON \
-DWITH_LIBXML2=ON \
-DWITH_MYSQL=ON\
-DWITH_SDE=0 .. >../configure.out.txt
I really appreciate your efforts!
Best
Lars
Am 13.01.2015 um 16:52 schrieb Eichner, Andreas - SID:
That's what I get on the console: $ MS_MAPFILE=$(pwd)/IHK_Handelsflaechen.map ./mapserv QUERY_STRING='service=WFS&version=1.1.0&request=GetFeature&featureid=IHK.71247&outputformat=geojson&callback=foobar'Content-Disposition: attachment; filename=result.dat Content-Type: application/json; subtype=geojson; charset=utf-8 foobar({ "type": "FeatureCollection","features": [{ "type": "Feature", "properties": { "PLZ": "09648", ..., "LANDKREIS": "Mittelsachsen" }, "geometry": { "type": "Point", "coordinates": [ 4568447.14, 5650577.57 ] } } ] } ); In other words, the JSON is enclosed by "foobar(" and ");": The relevant parts of the mapfile are: OUTPUTFORMAT NAME 'geojson' # NAME 'jsonp' DRIVER 'OGR/GEOJSON' MIMETYPE 'application/json; subtype=geojson; charset=utf-8' # MIMETYPE 'text/javascript; charset=utf-8' FORMATOPTION 'STORAGE=stream' FORMATOPTION 'FORM=simple' FORMATOPTION 'LCO:COORDINATE_PRECISION=5' FORMATOPTION 'JSONP=%callback%' END WEB VALIDATION callback '.*' # default_callback 'jsonp' END END The default value does not work, so the substitution parameter must be given.-----Ursprüngliche Nachricht----- Von: Lars Fricke [mailto:[email protected]] Gesendet: Dienstag, 13. Januar 2015 16:39 An: Eichner, Andreas - SID; [email protected] Betreff: Re: [mapserver-users] Setting up a JSONP service Hi Andreas, I guess I'm still doing something wrong. If I use http://localhost:8082/wfs?SERVICE=WFS&VERSION=1.1.0&request=GetFeature&TYP ENAME=HU&outputformat=geojson&SRS=EPSG:3857&bbox=793732,6570204,793765,657 0228&callback=foobar I'm getting the exact same output as before. What are you getting? Can you post an example of your servers response? Thank you so much. Best Lars Am 13.01.2015 um 15:57 schrieb Eichner, Andreas - SID:Arg.. outputformat=geojson also works, only had a typo...-----Ursprüngliche Nachricht----- Von: [email protected] [mailto:mapserver-users- [email protected]] Im Auftrag von Eichner, Andreas - SID Gesendet: Dienstag, 13. Januar 2015 15:18 An: '[email protected]'; [email protected] Betreff: Re: [mapserver-users] Setting up a JSONP service You need to append the "callback" parameter to the query string:http://localhost:8082/wfs?SERVICE=WFS&VERSION=1.1.0&request=GetFeature&TYP ENAME=HU&outputformat=geojson&SRS=EPSG:3857&bbox=793732,6570204,793765,6570228&callback=foobar You can test on the command line, too: MS_MAPFILE=/path/to/mapfile ./mapserv QUERY_STRING='service=WFS&version=1.1.0&request=GetFeature&typename=HU&SRS=EPSG:3857&bbox=793732,6570204,793765,6570228&outputformat=application/json; subtype=geojson; charset=utf-8&callback=foobar' Please note that IMHO "geojson" alone isn't enough. The full mimetype string should be used as reported by GetCapabilities. HTH-----Ursprüngliche Nachricht----- Von: Lars Fricke [mailto:[email protected]] Gesendet: Dienstag, 13. Januar 2015 14:22 An: Eichner, Andreas - SID; [email protected] Betreff: Re: [mapserver-users] Setting up a JSONP service Hi, I compiled MapServer after applying the patch (at least I think it was applied). Unfortunately the output is not JSONP format. Maybe I'm getting something wrong. So here is what I did: Applied patch -p1 < jsonp.diff I got an updated mapogroutput.c. I then compiled with the following options: cmake -DCMAKE_INSTALL_PREFIX=/opt \ -DCMAKE_PREFIX_PATH="/usr/local;/opt" \ -DWITH_CLIENT_WFS=ON \ -DWITH_CLIENT_WMS=ON \ -DWITH_CURL=ON \ -DWITH_SOS=ON \ -DWITH_PHP=0 \ -DWITH_PYTHON=ON \ -DWITH_SVGCAIRO=OFF \ -DWITH_ORACLESPATIAL=0 \ -DWITH_MSSQL2008=OFF \ -DWITH_THREAD_SAFETY=ON \ -DWITH_LIBXML2=ON \ -DWITH_MYSQL=ON\ -DWITH_SDE=0 .. >../configure.out.txt Which goes through without any warning. I do make next, getting a few warnings about the Python bindings but nothing about mapogroutput (ecept that it was compiled). Then sudomakeinstall. No warnings. I then set a symlink to the new mapserv file inside cgi-bin and startmyapache. I changed my mapfile as you indicated: WEB FOOTER "test" IMAGEPATH "/var/www/html/tmp/" TEMPPATH "/var/www/html/tmp/" IMAGEURL "/html/tmp/" METADATA "wfs_title" "Test" "ows_onlineresource" "http://localhost:8082/wfs?" "ows_enable_request" "*" "ows_srs" "EPSG:3857" "wfs_srs" "EPSG:3857" "wfs_getfeature_formatlist" "geojson,csv,ogrgml" "wfs_encoding" "UTF-8" END # METADATA VALIDATION callback ".*" END END # WEB OUTPUTFORMAT NAME "geojson" DRIVER "OGR/GEOJSON" MIMETYPE "application/json; subtype=geojson; charset=utf-8" FORMATOPTION "STORAGE=stream" FORMATOPTION "FORM=SIMPLE" FORMATOPTION "LCO:COORDINATE_PRECISION=5" FORMATOPTION "JSONP=%callback%" END Unfortunately calling:http://localhost:8082/wfs?SERVICE=WFS&VERSION=1.1.0&request=GetFeature&TYP ENAME=HU&outputformat=geojson&SRS=EPSG:3857&bbox=793732,6570204,793765,6570228 gives me a result as before without your changes: { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857" } }, "features": [ { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245586"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793757.73417, 6570202.31642 ], [ 793762.85989, 6570195.63821 ], [ 793770.20682, 6570201.30901 ], [ 793765.08276, 6570207.98411 ], [ 793757.73417, 6570202.31642 ] ] ] } }, { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245583"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793752.31968, 6570224.89917 ], [ 793747.96097, 6570230.48534 ], [ 793732.07033, 6570218.01607 ], [ 793740.12777, 6570207.69188 ], [ 793742.99908, 6570209.94649 ], [ 793747.5696, 6570204.08902 ], [ 793761.16105, 6570214.75134 ], [ 793752.94726, 6570225.27397 ], [ 793752.31968, 6570224.89917 ] ] ] } }, { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245550"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793735.55884, 6570231.00753 ], [ 793738.78194, 6570226.81082 ], [ 793746.26949, 6570232.5959 ], [ 793743.04798, 6570236.79266 ], [ 793735.55884, 6570231.00753 ] ] ] } } ] } I also tried this with an AJAX call from Javascript, giving me the exactly same result. I get an error message trying to use the result in Leaflet telling mea";" is missing. I assume it should look like this: var testlayer = [{ "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857" } }, "features": [ { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245586"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793757.73417, 6570202.31642 ], [ 793762.85989, 6570195.63821 ], [ 793770.20682, 6570201.30901 ], [ 793765.08276, 6570207.98411 ], [ 793757.73417, 6570202.31642 ] ] ] } }, { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245583"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793752.31968, 6570224.89917 ], [ 793747.96097, 6570230.48534 ], [ 793732.07033, 6570218.01607 ], [ 793740.12777, 6570207.69188 ], [ 793742.99908, 6570209.94649 ], [ 793747.5696, 6570204.08902 ], [ 793761.16105, 6570214.75134 ], [ 793752.94726, 6570225.27397 ], [ 793752.31968, 6570224.89917 ] ] ] } }, { "type": "Feature", "properties": { "gml_id": "", "UMRING_ID": "36245550"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 793735.55884, 6570231.00753 ], [ 793738.78194, 6570226.81082 ], [ 793746.26949, 6570232.5959 ], [ 793743.04798, 6570236.79266 ], [ 793735.55884, 6570231.00753 ] ] ] } } ] }]; I'm not sure what is going on. Am I not applying the changes correctly or is my call wrong? Thanks for you great support. Best Lars Am 09.01.2015 um 15:30 schrieb Eichner, Andreas - SID:Hi, I've attached a quick'n dirty solution (against master). When appliedtomapogroutput.c you can set a JSONP formatoption to the callback name: OUTPUTFORMAT NAME 'geojson' DRIVER 'OGR/GEOJSON' MIMETYPE 'application/json; subtype=geojson; charset=utf-8' FORMATOPTION 'STORAGE=stream' FORMATOPTION 'FORM=simple' FORMATOPTION 'LCO:COORDINATE_PRECISION=5' FORMATOPTION 'JSONP=%callback%' END This needs of course a WEB.VALIDATION: WEB ... VALIDATION callback '.*' END END Would be great if you can test if this works (looks good to me). TheDevs might have a look if this could be integrated into master untilOGRhas an appropriate layer creation option (solution described by Even).Greetings-----Ursprüngliche Nachricht----- Von: [email protected] [mailto:mapserver-users-[email protected]] Im Auftrag von Lars Fricke Gesendet: Freitag, 9. Januar 2015 11:24 An: [email protected] Betreff: Re: [mapserver-users] Setting up a JSONP service Hello, first of all: Thank you for your support! Sorry for the late reply but I unfortunately was ill. @ Steve: I read about templating but also read that it is slower? I do not have a lot of experience in writing templates. Would youmindsharing a JSONP template? @ Even: Thank you for your thoughts. Who would implement that change though? I'm afraid I can't. @ Jeff: I followed those links but I only found threads referring to GeoServer or that were not related to my question. The GDAL page Ididstudy and that's how I managed to set up the GeoJSON service butthatsnot the same unfortunately as it conflicts with the same originpolicy.Best Lars Am 30.12.2014 um 16:24 schrieb Lime, Steve D (MNIT):You can also use MapServer templates to accomplish this. It's alittlemore work since you have to write the template but it's quiteflexiblethen. Usually I write the template to produce JSON and then use asimplewrapper template to produce JSONP. For example, jsonp.js looks like (callback is passed in):// MapServer Template [callback]( [include src="templates/json.js"] ) Output formats look like: OUTPUTFORMAT NAME 'JSON' DRIVER 'TEMPLATE' MIMETYPE 'application/json;' FORMATOPTION 'FILE=templates/json.js' FORMATOPTION 'ATTACHMENT=service.json' END OUTPUTFORMAT NAME 'JSONP' DRIVER 'TEMPLATE' MIMETYPE 'application/json;' FORMATOPTION 'FILE=templates/jsonp.js' FORMATOPTION 'ATTACHMENT=service.json' END Steve -----Original Message----- From:[email protected] [mailto:mapserver-users-[email protected]] On Behalf Of Lars FrickeSent: Monday, December 29, 2014 5:34 AM To:[email protected] Subject: [mapserver-users] Setting up a JSONP service Dear List, I have a WFS service running under MapServer that I would like tooperate as JSONP service. I managed to set GEOJSON as output formatbutIget "Cross-Origin-Request Blocked" if I try to call it with aJavascriptclient (using Leaflet L.layerJSON.The question is: Is it possible to set up a JSONP service fromMapserverand if yes, how? My current mapfile looks like this (relevantparts):" # in WEB - METADATA "wfs_getfeature_formatlist" "geojson,csv,ogrgml" OUTPUTFORMAT NAME "geojson" DRIVER "OGR/GEOJSON" MIMETYPE "application/json; subtype=geojson; charset=utf-8" FORMATOPTION "STORAGE=stream" FORMATOPTION "FORM=SIMPLE" FORMATOPTION "LCO:COORDINATE_PRECISION=5" END " If this would already be a correct JSONP service, I have to look ontheLeaflet side for the error...Thanks for your help. Cheers Lars _______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users _______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
