MCPcopy Index your code
hub / github.com/MapServer/MapServer / FLTParseEpsgString

Function FLTParseEpsgString

mapogcfilter.c:162–217  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160}
161
162int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj)
163{
164 int nStatus = MS_FALSE;
165 int nTokens = 0;
166 char **tokens = NULL;
167 int nEpsgTmp=0;
168 size_t bufferSize = 0;
169
170#ifdef USE_PROJ
171 if (pszEpsg && psProj)
172 {
173 nTokens = 0;
174 tokens = msStringSplit(pszEpsg,'#', &nTokens);
175 if (tokens && nTokens == 2)
176 {
177 char *szTmp;
178 bufferSize = 10+strlen(tokens[1])+1;
179 szTmp = (char *)malloc(bufferSize);
180 snprintf(szTmp, bufferSize, "init=epsg:%s", tokens[1]);
181 msInitProjection(psProj);
182 if (msLoadProjectionString(psProj, szTmp) == 0)
183 nStatus = MS_TRUE;
184 free(szTmp);
185 }
186 else if (tokens && nTokens == 1)
187 {
188 if (tokens)
189 msFreeCharArray(tokens, nTokens);
190 nTokens = 0;
191
192 tokens = msStringSplit(pszEpsg,':', &nTokens);
193 nEpsgTmp = -1;
194 if (tokens && nTokens == 1)
195 {
196 nEpsgTmp = atoi(tokens[0]);
197
198 }
199 else if (tokens && nTokens == 2)
200 {
201 nEpsgTmp = atoi(tokens[1]);
202 }
203 if (nEpsgTmp > 0)
204 {
205 char szTmp[32];
206 snprintf(szTmp, sizeof(szTmp), "init=epsg:%d",nEpsgTmp);
207 msInitProjection(psProj);
208 if (msLoadProjectionString(psProj, szTmp) == 0)
209 nStatus = MS_TRUE;
210 }
211 }
212 if (tokens)
213 msFreeCharArray(tokens, nTokens);
214 }
215#endif
216 return nStatus;
217}
218
219

Callers

nothing calls this directly

Calls 4

msStringSplitFunction · 0.85
msInitProjectionFunction · 0.85
msLoadProjectionStringFunction · 0.85
msFreeCharArrayFunction · 0.85

Tested by

no test coverage detected