A continuación encontrarás traducido al castellano el artículo de Ricardo Cruz publicado originalmente en el blog oficial de Xojo.
Xojo 2023r3 incluye un nuevo renderizador de mapas que puedes utilizar en tus aplicaciones Web en las que hagas uso de esta capacidad. ¡Veamos cuáles son las novedades y cambios!
Primero, un breve repaso
Hasta ahora hemos estado utilizando Google Maps Embed como nuestro renderizador de mapas. Google Maps es un producto realmente bueno, pero requiere el uso de una clave API para prácticamente cualquier cosa.
Sin ir más lejos, en nuestro ejemplo de Eddie’s Electronics, el mapa en la lista de clientes no se mostraba a no ser que tuvieses y utilizases una clave API válida de Google Maps.
Ahora utilizaremos como alternativa MapLibre, una la librería de mapas Open Source. Esto significa que ahora puedes crear mapas verdaderamente interactivos con Xojo, soportando múltiples marcardores y opciones de personalización.
Si bien todavía puedes utilizar Google Maps Embed como el renderizador, MapLibre es nuestra opción preferida y es la que se utiliza por omisión.
Proveedores de los tiles en los mapas
Al cambiar a otra librería queríamos asegurarnos que tu, como desarrollador, tuvieses más control. WebMapViewer incluye una nueva propiedad, StyleURL, que apunta a la url que devuelve un archivo Style.
Los archivos Style son documentos JSON que siguen la especificación MapLibre Style. La forma más sencilla de crear un mapa personalizado es registrándose en uno de los proveedores que soportan este formato. Dichos proveedores te proporcionarán un URL de estilo que puedes utilizar en tu mapa. Alguno de ellos son:
Por omisión utilizamos OpenStreetMap para el reasterizado de las piezas (imágenes) que conforman las secciones del mapa, lo cual debería de resultar suficiente para el desarrollo de pequeñas aplicaciones Web.
Pero no estás limitado al uso de terceros proveedores. En proyectos donde la privacidad es una cuestión importante, o bien donde no quieras preocuparte de límites mensuales o costes, puedes utilizar software basado en premisas para servir tus propias piezas vectoriales del mapa.
Martin es Open Source, pero también puedes utilizar una solución comercial como MapTile Server.
Búsqueda de Direcciones
Al igual que sucede con las piezas de los mapas, por omisión los mapas utilizarán a partir de ahora el servicio gratuito de Geolocalización Nominatim. Si alcanzas cualquier límite o si, por ejemplo, estás trabajando en un proyecto con limitaciones de privacidad, entonces puedes intalar Nominatim en premisas.
Usando WebMapLocation.LookupProviderURL puedes apuntar ahora a tu propio servidor de Nominatim.
Recuperar y dibujar Rutas
Por último, puedes recuperar y dibujar rutas usando OpenStreetMap; podrás dibujar las rutas sin importar cuál sea el proveedor de piezas de mapa que estés usando. Cuando utilices el modo Directions, todo lo que has de hacer es añadir ubicaciones al mapa.
Pero si necesitas más control, cambia tu WebMapViewer al modo View y utiliza los nuevos métodos DrawRoute o Route. El segundo devolverá un objeto MapRoute con la distancia e información sobre la duración del trayecto.
También puedes utilizar este objeto para cosas como la serialización y almacenamiento del resultado en tu base de datos. De esta forma podrás saltarte el envío de nuevas peticiones de ruta al servicio y simplemente renderizar la(s) ruta(s).
DrawRoute y Route asumirán por defecto que estás utilizando el automóvil como medio de transporte, pero el parámetro transportType soporta: Car, Bike y Walking.
¡Es sólo el principio!
Ya estamos trabajando en nuevas características para este control que llegarán en próximas versiones de Xojo.
¡Estamos deseando ver todo lo que creas con la nueva versión de WebMapViewer!