On Monday, September 13, 2010, Pol <[email protected]> wrote:
> Hello all,
> I'm moving my whole project to the Drupal Framework and I'm using the 
> services module who can send data in many format(xml, json, amfphp, etc etc).
> Before using it, I was using simple php to send the data to my store, like 
> this:
>
>       MarkersStore = new GeoExt.data.FeatureStore({
>               layer: MarkersLayer,
>               proxy: new GeoExt.data.ProtocolProxy({
>                       protocol: new OpenLayers.Protocol.HTTP({
>                               url: get_markers.php,
>                               format: new OpenLayers.Format.GeoJSON({
>                                       'internalProjection': proj900913,
>                                       'externalProjection': proj4326
>                               }),
>                               readWithPOST: true
>                       })
>               }),
>               autoLoad: false,
>       });
>
> Now I have to modify my code to get it working with the tools provided by 
> this amazing framework.
> My Json code look like this now:
> {    "#error": false,
>     "#data": {
>         "type": "FeatureCollection",
>         "features": [
>             {
>                 "geometry": {
>                     "type": "Point",
>                     "coordinates": [
>                         4.35205865469,
>                         50.8235093311
>                     ]
>                 },
>                 "properties": {
>                     "img": "sites/default/modules/lukoil/lukoil.jpg",
>                     "inf": "Lukoil ID 3",
>                     "html": null
>                 }
>             }]
>       }
> }
>
> The FeatureCollection I use to parse is now embedded in another container.
> That means that my old FeatureStore is no more working with those data and I 
> don't know how to solve this.
>
> Any idea ?
> My store look like this now:
>       MarkersStore = new GeoExt.data.FeatureStore({
>               layer: MarkersLayer,
>               proxy: new GeoExt.data.ProtocolProxy({
>                       protocol: new OpenLayers.Protocol.HTTP({
>                               url: /services/json,
>                               params: {'method':'\"markers.get\"'},
>                               format: new OpenLayers.Format.GeoJSON({
>                                       'internalProjection': proj900913,
>                                       'externalProjection': proj4326
>                               }),
>                               readWithPOST: true
>                       })
>               }),
>               autoLoad: false,
>       });
>
> Thanks for the help !

Hi

This framework isn't so amazing since it doesn't support GeoJSON.
Sorry I couldn't resist :-)

The representation format of the received data is not GeoJSON, so it's
no surprise that Format. GeoJSON cannot read that.

What you can do is define your own Format, with something like that for example:

    new OpenLayers.Format.GeoJSON({
         read: function() {
             var obj = OpenLayers.Format.JSON.read.apply(this, arguments);
             return OpenLayers.Format.GeoJSON.read.apply(this, [obj]);
         }
     });

Cheers,

-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : [email protected]
http://www.camptocamp.com
_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to