[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