6 votos

¿Cómo convertir GML a características en ArcObjects?

¿Cómo convertir GML a funciones y características a GML que ArcObjects? Estamos construyendo una aplicación donde queremos comunicar un servicio con GML pero nativamente en nuestra aplicación independiente que queremos utilizar características y shapefiles.

Actualización: tengo un ArcGIS Server así podría utilizar un puente así que pude usar thatas un puente entre el servicio y el cliente.

5voto

swilliams Puntos 19415
  1. Tienes mi completa admiración por la de intentar esto. Puede ser una locura, pero estoy descontando esa posibilidad.
  2. Ya que dicen ArcObjects / ArcEngine, estoy suponiendo .NETO de la aplicación
  3. Definitivamente, me gustaría empezar aquí. De alguna manera, usted necesita para obtener las clases generadas a partir de la XSD, y mientras que usted puede hacerlo usted mismo para cualquier subconjunto que necesita, va a doler. Si hay alguna manera de utilizar LINQ (y parece que hay), me gustaría probar esa ruta.

Si usted puede dar algunos detalles más sobre lo que estamos tratando de lograr (r/s? r/w?), Sospecho que alguien probablemente le puede dar más detalles. Lo que estás intentando es un largish, pero no insuperable problema.

Ah, y una rápida (obvio en retrospectiva) pregunta - ¿el servidor que estamos hablando de generar WSDL? Si es así, entonces usted debería ser capaz de obtener VS2008 o 2010 para consumir directamente, haciendo la vida mucho más agradable.

Edit: Agregar detalles de menor importancia de la experimentación:

Comenzando desde el enlace anteriormente, yo era capaz de generar clases de C# con XSD. Esto genera las clases que se producirá un error en tiempo de ejecución debido a que el problema de XSD & .NET no es la generación de establecimiento inflexible de tipos de listas correctamente. También probé las sugerencias y correcciones de este post, solo para ver lo que ha cambiado. Estoy convencida de que el cambio de los tipos de datos subyacentes de doble/int, etc. la cadena es la idea más grande que nunca, pero se debe trabajar. En ambos casos, el comando para generar las clases es:

xsd.exe gml.xsd ..\..\xlink/1.0.0\xlinks.xsd ..\..\iso\19139\20070417\gmd\gmd.xsd ..\..\iso\19139\20070417\gco\gco.xsd ..\..\iso\19139\20070417\gss\gss.xsd ..\..\iso\19139\20070417\gts\gts.xsd ..\..\iso\19139\20070417\gsr\gsr.xsd /classes

Y sí, es feo. También se supone que te has descargado el juego completo de los esquemas de OpenGIS.net (disponible aquí), que tienes que tener para resolver todas las referencias.

Una rápida comparación de los dos conjuntos resultantes de clases muestra sorprendentemente pocas diferencias (el tipo de datos original entre paréntesis después del nombre de la cambió miembro:

 DirectPositionType.Text (double)
 DirectPositionListType.Text (double)
 GridType.axisLabels (NCName)
 ParameterValueType.integerValueList (integer)
 MeasureListType.Text (double)

Así, en el peor de los casos, si usted realmente necesita, es posible que desee utilizar el "fijo" versión 3.2.1, y, a continuación, actualizar los unos a los miembros a utilizar la serialización personalizada para conseguir un tipo más fuerte implantación en lugar de simplemente utilizar cadenas.

2voto

Nathan Bedford Puntos 3157

La única forma compatible, que yo sepa, aunque indirecta (a través de intermedios función de la clase de almacenamiento), es el uso de la extensión Data Interoperability. La documentación de la API incluye, entre otras cosas, una breve muestra en GML conversión.

Alternativamente, podría mirar en GDAL/OGR libray para que usted será capaz de encontrar .RED enlaces. En cualquier caso, el trato con la conversión en su propia es probable que sea una de las principales tareas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X