Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have an Esri based system in production; a complicated data model with a large number of feature classes. We need to migrate the data to another spatial reference.

The feature classes have class extensions and relationship classes defined on them, so the behaviour of creating new feature classes for the reprojection result that the standard projection geoprocessing tool exhibits is very cumbersome (class extensions and relationships are lost).

If necessary, we'll code up a solution but would prefer not to. Is it somehow possible, using standard or 3rd party extensions, to do a bulk, in-place reprojection and setting of new spatial reference?

share|improve this question
up vote 2 down vote accepted

The answer will depend on your class extensions. In reply to George's Answer you have mentioned that

as the geometry will be projected back to the projection set on the feature class when persisted after the change

This leads me to believe that your custom class extension is validating the geometry and checking the spatial reference as well.

share|improve this answer

That it is possible. When you grab an IGeometry object (such as a geometry for a certain record in a feature class, you can use the Project(ISpatialReference on it). After that, only save the edit and I think you're done. The problem is that you will be reprojecting the original data.

An ideal solution would creating a duplicate of your database, and then using search/update cursors, you reproject each geometry.

I'm pretty sure there might be easier / more efficient ways of doing it, but that should work.

I also would like to know alternatives to this problem.

share|improve this answer
First, I was looking, as described, for a way to achieve it withs standard ArcMap/GeoProcessing. ;) Second, the suggestion you give will not work (we already tried that), as the geometry will be projected back to the projection set on the feature class when persisted after the change. – Cumbayah Jul 29 '10 at 7:24

by 'in-place' you mean taking an existing feature class (fc) and changing it's coordinate system as well as the coordinates of the shapes without creating a few fc?

Here's why it won't work : feature class have one shape field. When you create a fc you set a CoordSys, and storage parameters (XY,Z,M tolerance, resolution and domains). You cannot change the storage parameters after the fc is created.

So think about a GCS with XYResolution (precision) is 8.9e-10, XYTolerance is 10*XYResolution, XYDomain min x & y are -400, -400, max X & Y are some huge values . Now think about re-projecting the shapes 'in-place' without updating the storage parameters, these storage parameters are totally inappropriate for most Projected Coodinate System (PCS) for example, which will lead to features not fitting within XYDomain, poor performance, storage issues, and strange results with topological/relational calculation on the shapes. Going from PCS to GCS is just as bad.

I'm not aware of any workflow that supports what you're trying to do.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.