¿Se pueden consumir mosaicos de mapas personalizados a través de ArcObjects dentro de mi complemento ArcGIS 10 Desktop?

8

¿Puedo consumir y representar programáticamente mosaicos de mapas personalizados en ArcMap a través de nuestro complemento ArcGIS 10 Desktop?

El complemento se crea utilizando el SDK de ArcObjects para C # /. NET y ArcGIS 10. Extraer y representar mosaicos de mapa NO es la función principal del complemento. Pero definitivamente nos gustaría implementar esta función si se puede hacer.

Más detalles:

  • Recibí una sugerencia de que la interfaz ITiledMapServer2 está involucrada, pero no me queda claro, y hay una escasez de información en los documentos de ArcObjects con respecto a esta tarea. La clase equivalente dentro de ArcGIS for Flex API es TiledMapServiceLayer, pero nuevamente es un complemento de ArcMap en el espacio del escritorio, no una aplicación web.
  • Tenemos software interno para generar nuestros propios mosaicos en el mismo esquema de mosaico de zoom, mosaico Y, mosaico X similar a las API JS / Flash de Google Maps.
  • Estamos usando Apache para servir los mosaicos de mapas y, por lo tanto, actualmente no estamos utilizando ArcGIS Server de ninguna manera (es decir, crear los mosaicos, publicar como un servicio de mapas de ArcGIS Server, etc.).
  • Publiqué la pregunta en SO y recibí una recomendación para publicar aquí.

Gracias de antemano.

Josh
fuente
Si todo lo que está tratando de hacer es llegar a los mosaicos del mapa en un servidor ArcGIS, ¿por qué no simplemente agregar el servicio como una capa en su MXD?
Michael Todd
Él dijo "no hay servidor ArcGIS" - solo Apache directo, de lo contrario, es muy simple, como usted dice.
Hierba
Gracias michael Debido a que los mosaicos no están en un servidor ArcGIS o de ninguna manera son atendidos por un servidor ArcGIS. Estos son nuestros mosaicos personalizados actualmente servidos por una máquina que ejecuta Apache administrada por nosotros. ¿Por qué? Tenemos varias aplicaciones web que utilizan la API de Google Maps y la API de ArcGIS para Flex que consumen estos mosaicos. Y sería bueno simplemente aprovechar esta infraestructura dentro de nuestro complemento de escritorio. Si servir nuestros mosaicos como un servicio de mapas publicado a través de ArcGIS Server es la única forma de hacerlo, está bien, solo quiero saberlo por adelantado.
Josh
(Vaya, pasó por alto su tercer punto de viñeta). Puede intentar estructurar las imágenes de tal manera que pueda solicitar los mosaicos según sea necesario (nombres de directorio X / Y, búsqueda XML, etc.), pero esencialmente estaría escribiendo su propio "servidor de mosaico de imágenes" desde cero. Sería mucho más fácil dejar que una herramienta preescrita haga su trabajo (si tiene acceso a ella) que escribirla usted mismo.
Michael Todd

Respuestas:

8

Creo que estás buscando implementar una capa personalizada. No sé de qué otra manera representaría los datos dentro de ArcMap. Fuera de un ejercicio puramente académico, no lo he hecho. Hay una página de inicio de información disponible aquí , con una lista de interfaces mínimas que necesitaría implementar. En el lado positivo, hay una muestra de desarrollador. La desventaja es que estás pisando un territorio de desarrollo realmente no trivial. Divertido, pero no trivial.

O puede ver lo que han hecho los chicos del proyecto codeplex ArcBruTile , que se parece muchísimo a lo que está intentando.

hierba
fuente
Sí, las capas personalizadas son el camino a seguir. No es trivial, pero tampoco es una tarea desalentadora. Como dibujará rásteres y no vectores, la parte más difícil será dibujar los mapas de bits en el lugar correcto en el contexto del dispositivo Win32. También recomendaría algún tipo de lógica de almacenamiento en caché en memoria.
Petr Krebs
@petr_k: justo en el dinero con el almacenamiento en caché siendo crítico: de lo contrario, el tráfico de red matará su rendimiento. Los chicos en el sitio codeplex al que se hace referencia (afirman que) se han ocupado de esto. No he revisado su código para ver cómo deciden cuánto tiempo esperar en un mosaico.
Hierba
Señores, gracias a los dos. @Herb especialmente, muchas gracias por el enlace codeplex al proyecto ArcBruTile. De hecho, se parece a lo que estamos intentando hacer. He escaneado el código, el almacenamiento en caché parece manejarse intentando primero cargar mosaicos desde el disco. ¿No ahí? Luego cárguelo en la web y luego escríbalos en el disco.
Josh
@Josh - Me alegra ayudar - el proyecto ArcBruTile también fue un hallazgo divertido para mí. ¿Te gustaría marcar la pregunta "respondida"?
Hierba
1

Los complementos son para funcionalidades básicas y personalizaciones como Custom Layers requerirán una solución COM y se pueden hacer usando ArcObjects y .NET. Sin embargo, esto no se puede hacer con Addins.

Devdatta Tengshe
fuente
Quizás, pero podemos lograr bastante en el nivel de Complemento dada la API de ArcObjects para ArcGIS 10. Una demostración de nuestro Complemento: youtube.com/watch?v=m2YRrCk3aKI
Josh