Cómo desarrollar un mapa de superposición personalizado como en Ingress

En un nivel alto, la construcción de un mapa de superposición de estilo Ingress (o Pokemon GO) implica las siguientes tareas:

  1. Obtenga acceso a una API que, dada una longitud / latitud, devuelve un conjunto de “características” cercanas. Las características son cosas geográficas como carreteras, agua, edificios, fronteras estatales … Hay dos formas principales de representar características en una API: superposiciones o mosaicos vectoriales. Una superposición es básicamente una imagen que representa la característica. Un mosaico de vectores describe la característica matemáticamente con un conjunto de vectores. Desea utilizar mosaicos de vectores, ya que esto permitirá animaciones suaves al desplazar el zoom, mover … El ejemplo de dicha API incluye OpenStreetMap (OpenStreetMap), entre otros. Puede ver estos mosaicos usted mismo usando MapTiler (mosaicos a la Google Maps: coordenadas, límites de mosaico y proyección). Asegúrese de seleccionar “ver datos del mapa” en las opciones,
  2. Elija una biblioteca / tubería de representación de gráficos 3D para su aplicación de mapas. Sospecho (no estoy seguro) que Ingress usa OpenGL y sabemos que Pokemon GO usa Unity 3D (Unity – Game Engine),
  3. Armado con la elección de tecnología realizada en el paso 2, cree una aplicación capaz de mostrar el mapa base en 3D, así como aceptar la entrada del usuario para moverse, hacer zoom, desplazarse … Deberá elegir una proyección de mapa. Si no puede decidir cuál, ¿qué le parece imitar Google Maps? Utiliza una proyección de Mercator modificada sobre la que puede leer más aquí: Google Maps Projection,
  4. Haz que tu mapa cobre vida. Active el GPS a medida que el usuario se mueve, obtenga la ubicación actual y recupere todas las funciones llamando a la API elegida en el paso 1. Recibirás un montón de vectores. Trate los datos de características (vectores de mosaico) recuperados de la API como cualquier otro objeto 3D en su escena: colóquelos adecuadamente, aplique textura, … Probablemente trabaje con tres sistemas de coordenadas: la longitud / latitud de la tierra, el sistema de coordenadas de mosaico y el renderizado Sistema de coordenadas de la biblioteca.

¡Un pequeño proyecto divertido para el fin de semana! De hecho, esto se ha hecho varias veces. Echa un vistazo, sin un orden específico:

  • Clon de PokemonGo usando Mapzen – Parte 1: Conceptos básicos – brnkhy – Desarrollo de juegos Unity3D,
  • OpenStreetMap en Unity3D – brnkhy – Desarrollo de juegos Unity3D,
  • ActionStreetMap,
  • MapNav – Kit de herramientas de geolocalización

Feliz mapeo de superposición!