Hay un enfoque general, pero todo depende del nivel de detalles que desea lograr. Actualmente estoy trabajando en un problema similar para mi proyecto, y esto es lo que recomendaría:
- Obtenga un mapa de alta resolución de la Tierra (la proyección equirectangular funciona mejor).
- El mapa idealmente debe ser blanco y negro, o al menos tener un solo color para tierra o agua. De esta forma, procesarlo en un editor de imágenes será relativamente sencillo.
- El mapa procesado resultante solo debe constar de 2 colores: negro para el agua, blanco para la tierra. Usar “Posterise” en Photoshop y reducir la profundidad del color funciona bastante bien. Es por eso que cuanto mayor sea la resolución de su mapa, mejor: cada píxel solo puede representar agua o tierra, por lo que cuantos más píxeles, más información se conserva.
- Ahora que tenemos el mapa, tenemos que codificar una pequeña herramienta que carga imágenes de 1 bit (b & w) en una matriz 2d, o simplemente usar una de las muchas bibliotecas / herramientas / scripts que lo hacen por usted.
- Lo único que queda es convertir la latitud y la longitud en coordenadas equirectangulares, teniendo en cuenta el ancho y la altura de su mapa, que es bastante fácil de hacer, matemáticamente.
- Ahora que sabemos si un píxel en las coordenadas equirrectangulares dadas (y, por lo tanto, parecidas a cartesianas en su naturaleza de proyecciones) es blanco o negro, sabemos si hay tierra allí o no.
No soy dueño del mapa en el ejemplo, lo encontré en Crear una Tierra Realista – Blender Guru, debajo del Mapa de especularidad. El mapa es ideal para el ejemplo, ya que tiene una resolución extremadamente alta y una proyección equirectangular.
Espero que ayude, avíseme si tiene alguna pregunta
- ¿Cuáles son todas las áreas en ingeniería de software? ¿Cuáles son las nuevas áreas emergentes en este momento?
- ¿Cuál es la mejor manera de enviar datos en tiempo real a una aplicación móvil desde un servidor?
- Cómo elegir un nombre en clave para un importante proyecto de desarrollo de software
- ¿Cuál es el nivel más bajo de abstracción de GUI en Linux?
- Cómo vender código desarrollado para un proyecto de clase