Estoy buscando una manera de implementar la visibilidad (aka viewshed). He encontrado un Pregunta sobre GIS SE que sugirió algunas aplicaciones GIS (no lo que necesito - estoy tratando de incrustar los cálculos), y también SAGA. SAGA se parece más a lo que estoy buscando (clases C++, Java, C#), pero no puedo entender lo suficiente de la documentación de la API para averiguar qué clases necesito siquiera instanciar (o subclasificar).
No estoy atado a la idea de SAGA - sólo estoy buscando una biblioteca / motor que pueda hacer cálculos de intervisibilidad.
Las limitaciones son que tiene que ser:
- razonablemente "ligero" (ya que me gustaría ser capaz de cubrir incrustado / móvil)
- razonablemente de código abierto (ya que mi aplicación será de código abierto, aunque soy flexible en cuanto a la licencia exacta siempre que sea compatible con la (L)GPL).
¿Puede alguien recomendar una biblioteca o un motor de este tipo, y proporcionar una descripción o un enlace a la parte de la biblioteca o el motor que debo utilizar para los cálculos de las vistas?
Alternativamente / en adición, también agradecería referencias a los documentos o tutoriales que explican cómo hacer estos cálculos de una manera eficiente (como aplicable a los dispositivos embebidos / móviles, por lo que una implementación basada en la GPU puede no ser tan útil como algo que es más general, y maneja los dispositivos de baja potencia)
Prefiero una implementación existente, en lugar de crear algo yo mismo (que es una opción de respaldo).
Edición: C++ no es un requisito firme - cualquier cosa razonablemente portable (C#, C++, Java) servirá. Estoy tratando de una biblioteca o plantillas en lugar de incrustar una gran aplicación.
2 votos
¿Necesitas realmente un algoritmo ZTV completo? ¿Quizás modelar el terreno en OpenGL y analizar los resultados de eso? Los smartphones tienen una aceleración de gráficos cada vez más buena que podrías aprovechar. OpenGL incluso soporta proyecciones ortográficas.
0 votos
Estoy contento siempre que produzca las respuestas "correctas", así que vale la pena mirar OpenGL. Tiene un ejemplo / puntero que hace esto de los datos de tipo SIG?