Hi,
I've attached a quick'n dirty solution (against master). When applied to
mapogroutput.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). The Devs might
have a look if this could be integrated into master until OGR has an
appropriate layer creation option (solution described by Even).
Greetings
-Ursprüngliche Nachricht-
Von: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-
boun...@lists.osgeo.org] Im Auftrag von Lars Fricke
Gesendet: Freitag, 9. Januar 2015 11:24
An: mapserver-users@lists.osgeo.org
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 you mind
sharing 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 I did
study and that's how I managed to set up the GeoJSON service but thats
not the same unfortunately as it conflicts with the same origin policy.
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 a little
more work since you have to write the template but it's quite flexible
then. Usually I write the template to produce JSON and then use a simple
wrapper 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:mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-
boun...@lists.osgeo.org] On Behalf Of Lars Fricke
Sent: Monday, December 29, 2014 5:34 AM
To:mapserver-users@lists.osgeo.org
Subject: [mapserver-users] Setting up a JSONP service
Dear List,
I have a WFS service running under MapServer that I would like to
operate as JSONP service. I managed to set GEOJSON as output format but I
get Cross-Origin-Request Blocked if I try to call it with a Javascript
client (using Leaflet L.layerJSON.
The question is: Is it possible to set up a JSONP service from Mapserver
and if yes, how? My current mapfile looks like this (relevant parts):
# 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 on the
Leaflet side for the error...
Thanks for your help.
Cheers
Lars
___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
jsonp.diff
Description: jsonp.diff
___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users