Re: [mapserver-users] Setting up a JSONP service

2015-01-09 Thread Lars Fricke

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


Re: [mapserver-users] Setting up a JSONP service

2015-01-09 Thread 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-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