[mapserver-users] Setting up a JSONP service

Lars Fricke fricke at gisberater.com
Mon Jan 12 23:11:52 PST 2015


Hi  Andreas,

I was on business trip yesterday so I only reply today. I will test this 
and let you know. I assume I'll have to compile Mapserver including your 
change. Since so far I used precompiled I guess I'll take some time 
setting it up to compile. Anyhow I'll keep you posted and thank you very 
much for your 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 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



More information about the mapserver-users mailing list