I need to find and easy and affordable way to generate 3D linear shapefiles in Windows so one of our users can inspect our tool. We incorrectly assumed that he had 3D shapefile source data available or had a way to produce it.
I found an ArcGIS Technical Article on how to convert a 2D shapefile to a 3D shapefile; however, it requires ArcGIS with 3D Analyst. I have ArcGIS available but do not have a 3D Analyst license, so I cannot replicate the steps from the article. The user also has ArcGIS available but I do not know if he has a 3D Analyst license. Regardless, I would like to test the process before sending him the article.
I have previously created 3D shapefiles using the OGR/GDAL C++ API and the OGR/GDAL Python API included in FWTools and OSGeo4W. I considered writing a simple program or Python script that can parse an input text file. The Python solution would require the user to install a Python runtime with GDAL support, so I am hesitant to take that approach.
MapWindow 4.7.5 has a 3D vector to 2D vector option in the GIS Tools | Vector menu, but not the other way around. I just checked and MapWindow is at version 4.8.3, but could not find any reference to 3D shapefiles or vector features in its online documentation.
Is there a Windows GIS editor (besides ArcGIS with 3D Analyst) that supports the creation of 3D shapefiles?
Using ArcCatalog (or the ArcCatalog toolbox from ArcMap), create a new shapefile and check 'Coordinates will contain Z values.'. Set the spatial reference, including the vertical SR. In ArcMap, start an edit session, create a feature (doesn't matter if its point/line/polygon). Once the feature is created, select it (still in an edit session) and click 'Sketch Properties' on the Edit Toolbar. You'll see all vertices for the selected feature, and you'll be able to edit X/Y/Z/M values using the table of vertices. This method only requires an ArcView license, and does not require Editor/Analyst licenses.
I'm not aware of an editor supporting this, but if you have to program something I would use shapelib instead of using python/GDAL/…
The api is straightforward , and if you statically link the library it would require only one .exe file for making the conversion.