[mapserver-users] Setting up a JSONP service
Eichner, Andreas - SID
Andreas.Eichner at sid.sachsen.de
Fri Jan 9 06:30:28 PST 2015
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-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org] Im Auftrag von Lars Fricke
> Gesendet: Freitag, 9. Januar 2015 11:24
> An: mapserver-users at 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-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org] On Behalf Of Lars Fricke
> > Sent: Monday, December 29, 2014 5:34 AM
> > To:mapserver-users at 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 at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> > _______________________________________________
> > mapserver-users mailing list
> > mapserver-users at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> >
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jsonp.diff
Type: application/octet-stream
Size: 964 bytes
Desc: jsonp.diff
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20150109/f16a9b6f/attachment.obj>
More information about the MapServer-users
mailing list