Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I discovered the following code leaves the Z coordinate of featurePt untouched:

// if not WGS84 project it
if (!SpatialRefsEqual(featureSpatialRef, srWgs84))
{
    // featurePt here is a Z-Aware instance of IPoint
    // use the Geometry Interface to do the actual project
    featurePt.SpatialReference = featureSpatialRef;
    featurePt.Project(srWgs84);
}

I see the IVerticalCoordinateSystem interface but it unclear to me how to use it to do a projection. For example, simply plugging it in via:

featurePt.Project(myInstanceOfIVerticalCoordinateSystem)

still leaves Z untouched.

It also seems like I could just write a routine to convert the Z-coordinate in the linear units of the layer to my desired linear units (meters in this case).

Is there a best practice for projecting the Z-coordinate?

Thanks in advance, Josh

EDIT

According to mkennedy at ESRI, ArcGIS does not provide a true vertical transformation (thank you for answering!). If anyone knows of any outside library to vertically transform among vertical datums please let me know. Thanks!

share|improve this question
    
Could you explain what you mean by "projecting" the z-coordinate, Josh? Normally, heights are not affected by changes of (planar) coordinate systems and therefore do not need to be changed at all when reprojecting the map coordinates. –  whuber Apr 29 '11 at 18:50
    
Do both the input and the output spatialreference have a defined vcs property? –  Kirk Kuykendall Apr 29 '11 at 19:17
    
@whuber, I basically mean "convert" the z-coordinate, specifically the linear units, feet to meters, etc. Part of my confusion lies in the distinction between the GIS definition of a coordinate system and the 3D graphics definition of a coordinate space (where one transforms X,Y and Z). So maybe my question doesn't make sense. I should just look at the source linear units and convert Z to whatever units I require (again, meters...). –  Josh Apr 29 '11 at 22:42
    
after speaking again with the team: simply converting Z between linear units is naive. I truly need a vertical coordinate transformation. For example, EGM96 to/from EGM2008, both of which could be expressed in meters. –  Josh Apr 30 '11 at 0:04
add comment

1 Answer

up vote 0 down vote accepted

Currently, ArcGIS 10 does not do any vertical coordinate system conversions. You can define a vertical coordinate system on a dataset, but the software isn't using the information except when defining the spatial reference (min/max z, z resolution/tolerance values). ArcScene/ArcGlobe may be checking the z units. We do plan to add vcs conversions in a future release. It has not been scheduled yet, so I cannot name a particular release or time frame.

std. disclaimer: I work for Esri.

share|improve this answer
add comment

Your Answer

 
discard

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.