Statistics
| Revision:

root / tags / v1_1_1_Build_1021 / libraries / libjni-gdal-macosx / src / ogrspatialreference_interfaz.c @ 39178

History | View | Annotate | Download (9.35 KB)

1 8219 nacho
 /**********************************************************************
2 13023 mija
 * $Id: ogrspatialreference_interfaz.c,v 1.9 2006/06/10 12:50:13
3 8219 nacho
 *
4
 * Name:     OGRSpatialReference_interfaz.c
5
 * Project:  JGDAL. Interface java to gdal (Frank Warmerdam).
6
 * Purpose:  dataset's Basic Funcions.
7 13023 mija
 * Author:   Miguel Garcia Jiemenez, garciajimenez.miguel@gmail.com
8 8219 nacho
 *
9
 **********************************************************************/
10
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
11
*
12
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
13
*
14
* This program is free software; you can redistribute it and/or
15
* modify it under the terms of the GNU General Public License
16
* as published by the Free Software Foundation; either version 2
17
* of the License, or (at your option) any later version.
18
*
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
* GNU General Public License for more details.
23
*
24
* You should have received a copy of the GNU General Public License
25
* along with this program; if not, write to the Free Software
26
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
27
*
28
* For more information, contact:
29
*
30
*  Generalitat Valenciana
31
*   Conselleria d'Infraestructures i Transport
32
*   Av. Blasco Ib??ez, 50
33
*   46010 VALENCIA
34
*   SPAIN
35
*
36
*      +34 963862235
37
*   gvsig@gva.es
38
*      www.gvsig.gva.es
39
*
40
*    or
41
*
42
*   IVER T.I. S.A
43
*   Salamanca 50
44
*   46005 Valencia
45
*   Spain
46
*
47
*   +34 963163400
48
*   dac@iver.es
49
*/
50
51
52
#include <jni.h>
53
#include "es_gva_cit_jogr_JNIBase.h"
54
#include "gdal.h"
55
#include "cpl_string.h"
56
#include "ogr_api.h"
57
#include "ogr_srs_api.h"
58
59 13023 mija
/******************************************************************************/
60
//                                                        OGRSpatialReference
61
/******************************************************************************/
62 8219 nacho
63 13023 mija
JNIEXPORT jlong JNICALL Java_org_gvsig_crs_ogr_JNIBase_OGRSpatialReferenceNat
64
  (JNIEnv * env, jobject obj){
65
66
          OGRSpatialReferenceH *hSRS;
67
          jlong jresult=0;
68
          hSRS=(OGRSpatialReferenceH*)malloc(sizeof(OGRSpatialReferenceH));
69
70
         *hSRS = OSRNewSpatialReference( NULL );
71
          *(OGRSpatialReferenceH **)&jresult = hSRS;
72
73
          //printf("-------->%ld\n",(long)jresult);
74
          return (long)jresult;
75
  }
76
77 8219 nacho
/******************************************************************************/
78 13023 mija
//                                                                exportToWkt
79
/******************************************************************************/
80
81
JNIEXPORT jstring JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_exportToWktNat
82
  (JNIEnv *env, jobject obj, jlong cPtr){
83
84
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
85
          jstring wkt;
86
          char *pszSRS_WKT = NULL;
87
88
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
89
90
          if(hSRS!=NULL){
91
                   OSRExportToWkt( *hSRS, &pszSRS_WKT );
92
                   if(pszSRS_WKT!=NULL){
93
                        wkt = (*env)->NewStringUTF(env, pszSRS_WKT);
94
                        return wkt;
95
                   }
96
          }
97
98
          return NULL;
99
  }
100
/******************************************************************************/
101
//                                                        OSRDestroySpatialReference
102
/******************************************************************************/
103
104
JNIEXPORT void JNICALL Java_org_gvsig_crs_ogr_JNIBase_OGRDestroySpatialReferenceNat
105
  (JNIEnv *env, jobject obj, jlong cPtr){
106
107
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
108
109
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
110
111
          if(hSRS!=NULL){
112
                  OSRDestroySpatialReference(*hSRS);
113
          }
114
  }
115
116
/******************************************************************************/
117
//                                                                importFromWkt
118
/******************************************************************************/
119
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromWktNat
120
  (JNIEnv *env, jobject obj, jlong cPtr, jstring cs){
121
122
    OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
123
    jint err;
124
125
    hSRS = *(OGRSpatialReferenceH **)&cPtr;
126
    if(hSRS!=NULL){
127
                char *cad = (*env)->GetStringUTFChars(env, cs, 0);
128
            err = OSRImportFromWkt( *hSRS,&cad);
129
            return err;
130
    }
131
132
    return err;
133
 }
134
135
/******************************************************************************/
136 8219 nacho
//                                                                setUTM
137
/******************************************************************************/
138
139 13023 mija
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_setUTMNat
140 8219 nacho
  (JNIEnv *env, jobject obj, jlong cPtr, jint zona, jint norte_sur){
141 13023 mija
142 8219 nacho
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
143 13023 mija
          jint err;
144
145 8219 nacho
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
146
          if(hSRS!=NULL){
147 13023 mija
                  err = OSRSetUTM( *hSRS, zona, norte_sur );
148
                 return err;
149 8219 nacho
          }
150 13023 mija
          return err;
151 8219 nacho
  }
152
153
/******************************************************************************/
154
//                                                        setWellKnownGeogCS
155
/******************************************************************************/
156
157 13023 mija
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_setWellKnownGeogCSNat
158 8219 nacho
  (JNIEnv *env, jobject obj, jlong cPtr, jstring cs){
159 13023 mija
160
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0;
161
          jint err;
162
163 8219 nacho
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
164
          if(hSRS!=NULL){
165
                  const char *coord_sys = (*env)->GetStringUTFChars(env, cs, 0);
166 13023 mija
                  err = OSRSetWellKnownGeogCS( *hSRS, coord_sys );
167 8219 nacho
                  (*env)->ReleaseStringUTFChars(env, cs, coord_sys);
168 13023 mija
                  return err;
169 8219 nacho
          }
170 13023 mija
171
          return err;
172 8219 nacho
  }
173
174 13023 mija
175 8219 nacho
/******************************************************************************/
176 13023 mija
//                                                                importFromEPSG
177 8219 nacho
/******************************************************************************/
178
179 13023 mija
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromEPSGNat
180
  (JNIEnv *env, jobject obj, jlong cPtr, jint cod){
181
182
        OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
183
        jint err;
184
        char *pszSRS_WKT = NULL;
185
186
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
187
188
          if(hSRS!=NULL){
189
                   err = OSRImportFromEPSG(*hSRS, cod );
190
                    OSRExportToWkt(*hSRS, &pszSRS_WKT);
191
          }
192
193
          return err;
194 8219 nacho
  }
195 13023 mija
196
197 8219 nacho
/******************************************************************************/
198 13023 mija
//                                                                importFromProj4
199 8219 nacho
/******************************************************************************/
200
201 13023 mija
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromProj4Nat
202
  (JNIEnv *env, jobject obj, jlong cPtr, jstring cs){
203
204
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
205
          jint err;
206
207
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
208
          if(hSRS!=NULL){
209
                  const char *coord_sys = (*env)->GetStringUTFChars(env, cs, 0);
210
                  err = OSRImportFromProj4( *hSRS, coord_sys );
211
                  (*env)->ReleaseStringUTFChars(env, cs, coord_sys);
212
                  return err;
213
          }
214
215
          return err;
216
  }
217
218
/******************************************************************************/
219
//                                                                exportToProj4
220
/******************************************************************************/
221
222
JNIEXPORT jstring JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_exportToProj4Nat
223 8219 nacho
  (JNIEnv *env, jobject obj, jlong cPtr){
224 13023 mija
225 8219 nacho
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
226
          jstring wkt;
227
          char *pszSRS_WKT = NULL;
228 13023 mija
229 8219 nacho
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
230 13023 mija
231 8219 nacho
          if(hSRS!=NULL){
232 13023 mija
                   OSRExportToProj4( *hSRS, &pszSRS_WKT );
233 8219 nacho
                   if(pszSRS_WKT!=NULL){
234 13023 mija
                        wkt = (*env)->NewStringUTF(env, pszSRS_WKT);
235 8219 nacho
                        return wkt;
236 13023 mija
                   }
237 8219 nacho
          }
238 13023 mija
239 8219 nacho
          return NULL;
240
  }
241
242
/******************************************************************************/
243 13023 mija
//                                                                importFromPCI
244 8219 nacho
/******************************************************************************/
245
246 13023 mija
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromPCINat
247
  (JNIEnv *env, jobject obj, jlong cPtr,jstring cod, jstring cs, jdoubleArray coord){
248
249 8219 nacho
          OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
250 13023 mija
          jint err;
251
          double *xcoord = (* env)-> GetDoubleArrayElements(env, coord, NULL);
252
253 8219 nacho
          hSRS = *(OGRSpatialReferenceH **)&cPtr;
254
          if(hSRS!=NULL){
255 13023 mija
                  const char *coord_sys = (*env)->GetStringUTFChars(env, cs, 0);
256
                  const char *cod_sys = (*env)->GetStringUTFChars(env, cod, 0);
257
                  err = OSRImportFromPCI( *hSRS, cod_sys, coord_sys, xcoord );
258
                  (*env)->ReleaseStringUTFChars(env, cs, coord_sys);
259
                  return err;
260 8219 nacho
          }
261 13023 mija
          (* env)->ReleaseDoubleArrayElements(env,coord,(jdouble *) xcoord,JNI_COMMIT);
262
263
          return err;
264 8219 nacho
  }
265
266
/******************************************************************************/
267 13023 mija
//                                                                importFromESRI
268
/******************************************************************************/
269
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromESRINat
270
  (JNIEnv *env, jobject obj, jlong cPtr, jstring cs){
271
272
    OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0 ;
273
    jint err;
274
275
    hSRS = *(OGRSpatialReferenceH **)&cPtr;
276
    if(hSRS!=NULL){
277
                char *cad = (*env)->GetStringUTFChars(env, cs, 0);
278
            err = OSRImportFromWkt( *hSRS,&cad);
279
            return err;
280
    }
281
282
    return err;
283
 }
284
285
286
/******************************************************************************/
287
//                                                                importFromUSGS
288
/******************************************************************************/
289
JNIEXPORT jint JNICALL Java_org_gvsig_crs_ogr_JNIBaseCRS_importFromUSGSNat
290
  (JNIEnv *env, jobject obj, jlong cPtr,jlong iProjSys ,jlong iZone, jdoubleArray padfPrjParams, jlong iDatum){
291
292
        OGRSpatialReferenceH *hSRS = (OGRSpatialReferenceH *) 0;
293
        jint err;
294
295
        double *params = (* env)-> GetDoubleArrayElements(env, padfPrjParams, NULL);
296
        jint sizeofdata = (* env)-> GetArrayLength(env,padfPrjParams);
297
298
        if(sizeofdata != 15){
299
                printf("El tama?o del array de dobles debe ser 15");
300
                 return 5;
301
        }
302
303
        hSRS = *(OGRSpatialReferenceH **)&cPtr;
304
        if(hSRS!=NULL){
305
                err = OSRImportFromUSGS(*hSRS, iProjSys, iZone, params, iDatum);
306
                return err;
307
        }
308
309
        return err;
310
}
311