Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Mapas Locales En Gb.map
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Mapas Locales En Gb.map 
 
Buenas,

He estado jugando con el componente gb.Map e incluso revisando su código y creo que al final entiendo más o menos como utilizarlo para visualizar mapas. O como mínimo he conseguido visualizar otros mapas además de los consabidos openstreetmap o google.

Para empezar, este componente puede obtener mapas, por defecto, de servicios WMTS (web map tile service) que utilizen el sistema de coordenadas epsg:4326. Un ejemplo podrían ser los siguientes mapas:

España (https://www.ign.es)
Cartografía:
MapView1.Map.AddTile("España topo", "http://www.ign.es/wmts/mapa-raster?Layer=MTN&Style=default&TileMatrixSet=GoogleMapsCompatible&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix={z}&TileCol={x}&TileRow={y}")
 

Ortofotos:
MapView1.Map.AddTile("España orto", "http://www.ign.es/wmts/pnoa-ma?Layer=OI.OrthoimageCoverage&Style=default&TileMatrixSet=GoogleMapsCompatible&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={z}&TileCol={x}&TileRow={y}")
 


Euskadi (http://www.geo.euskadi.eus)
Cartografía:
MapView1.Map.AddTile("Euskadi topo", "https://www.geo.euskadi.eus/geoeuskadi/rest/services/U11/WMTS_TOPO/MapServer/WMTS/tile/1.0.0/U11_WMTS_TOPO/default/default028mm/{z}/{y}/{x}.png")
 

Ortofotos:
MapView1.Map.AddTile("Euskadi orto", "https://www.geo.euskadi.eus/geoeuskadi/rest/services/U11/WMTS_ORTO/MapServer/WMTS/tile/1.0.0/U11_WMTS_ORTO/default/default028mm/{z}/{y}/{x}.png")
 


Catalunya (https://www.icgc.cat)
Cartografía:
MapView1.Map.AddTile("Catalunya topo", "http://geoserveis.icc.cat/icc_mapesmultibase/noutm/wmts/topo/GRID3857/{z}/{x}/{y}.jpeg")
 

Ortofotos:
MapView1.Map.AddTile("Catalunya orto", "http://geoserveis.icc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg")
 


Las diferencias entre los mapas estatales y autonómicos vienen dadas por la fecha de realización de los mapas (unos pueden ser más modernos que otros) o ser más detallados, pero siempre hay diferencias estéticas.


En el caso en que el sistema de coordenas utilizado por el servicio sea otro, hay que indicarlo en la propiedad WMSProjection. Por ejemplo en Navarra:

Navarra (https://idena.navarra.es)
Cartografía:
With MapView1.Map.AddTile("Navarra topo", "https://idena.navarra.es/ogc/wmts/mapaTopografico/default/epsg25830/{z}/{y}/{x}.png")
   .WMSProjection = "epsg:25830"
End With
 

Ortofotos:
With MapView1.Map.AddTile("Navarra orto", "https://idena.navarra.es/ogc/wmts/ortofoto2019/default/epsg25830/{z}/{y}/{x}.jpeg")
   .WMSProjection = "epsg:25830"
End With
 


Además de los servicios WMTS, el componente también puede obtener datos de servicios WMS (web map service), pero se requiere más parametrización. Ejemplos de estos casos son:

Andorra (https://www.cartografia.ad/geoportal)
Cartografía:
With MapView1.Map.AddTile("Andorra topo", "https://www.ideandorra.ad/Serveis/wms_10k2003raster/ows?")
   .MaxBounds = MapBounds(MapPoint(42.67791461218689, 1.8089496730257377), MapPoint(42.405083084903076, 1.379699166254689))
   .WMSProjection = "epsg:27563"
   .UseWebMapService = True
   .WMSArgs!service = "WMS"
   .WMSArgs!version = "1.1.0"
   .WMSArgs!request = "GetMap"
   .WMSArgs!layers = "raster_10k_2003"
   .WMSArgs!bbox = "{lon},{lat2},{lon2},{lat}"
   .WMSArgs!width = 256
   .WMSArgs!height = 256
   .WMSArgs!srs = "EPSG:27563"
   .WMSArgs!format = "image/jpeg"
End With
 

Ortofotos:
With MapView1.Map.AddTile("Andorra orto", "https://www.ideandorra.ad/Serveis/wmsorto2003/ows?")
   .MaxBounds = MapBounds(MapPoint(42.67791461218689, 1.8089496730257377), MapPoint(42.405083084903076, 1.379699166254689))
   .WMSProjection = "epsg:27563"
   .UseWebMapService = True
   .WMSArgs!service = "WMS"
   .WMSArgs!version = "1.1.0"
   .WMSArgs!request = "GetMap"
   .WMSArgs!layers = "wmsorto2003:Orto5000_2003"
   .WMSArgs!bbox = "{lon},{lat2},{lon2},{lat}"
   .WMSArgs!width = 256
   .WMSArgs!height = 256
   .WMSArgs!srs = "EPSG:27563"
   .WMSArgs!format = "image/jpeg"
End With
 


Francia
Cartografía:
With MapView1.Map.AddTile("Francia topo", "http://mapsref.brgm.fr/wxs/refcom-brgm/refign?")
   .MaxBounds = MapBounds(MapPoint(51.1752, 10.8198), MapPoint(40.8523, -5.66635))
   .UseWebMapService = True
   .WMSArgs!service = "WMS"
   .WMSArgs!version = "1.1.1"
   .WMSArgs!request = "GetMap"
   .WMSArgs!layers = "FONDS_SCAN"
   .WMSArgs!bbox = "{lon},{lat2},{lon2},{lat}"
   .WMSArgs!width = 256
   .WMSArgs!height = 256
   .WMSArgs!srs = "EPSG:4326"
   .WMSArgs!format = "image/jpeg"
End With
 

Ortofotos:
With MapView1.Map.AddTile("Francia orto", "http://mapsref.brgm.fr/wxs/refcom-brgm/refign?")
   .MaxBounds = MapBounds(MapPoint(51.1752, 10.8198), MapPoint(40.8523, -5.66635))
   .UseWebMapService = True
   .WMSArgs!service = "WMS"
   .WMSArgs!version = "1.1.1"
   .WMSArgs!request = "GetMap"
   .WMSArgs!layers = "ORTHO"
   .WMSArgs!bbox = "{lon},{lat2},{lon2},{lat}"
   .WMSArgs!width = 256
   .WMSArgs!height = 256
   .WMSArgs!srs = "EPSG:4326"
   .WMSArgs!format = "image/jpeg"
End With
 


Según el sistema operativo que estemos utilizando, puede ser necesario instalar la librería gdal y/o definir una variable de entorno:
apt install gdal-bin python-gdal
export PROJ_LIB=/usr/share/proj
 


Con todo esto, he tenido también errores, en concreto mapas de Italia, Aragón y WMTS de Andorra.
Para Italia consigo descargar una imagen si pego la url directamente en el explorador, pero si lo hago a través del componente, el servicio se bloquea y da error por "estar ocupado". He leído que hay servidores que si detectan descargas masivas se autoprotegen y bloquean la ip peticionaria. Ignoro si es ese el caso.

Los servicios WMTS y WMS están definidos por el Open Geospatial Consortium (OGC) y se establece que para el WMTS, el nivel de zoom 1 es un mosaico de 2x2 teselas, el nivel 2 de 4x4, y así sucesivamente y es lo que contempla el componente gb.map. Pero también define otra normativa donde el nivel 1 de zoom es un mosaico de 4x2 teselas, el nivel 2 de 8x4 teselas, y así sucesivamente. Los servidores de Aragón y Andorra tienen esa segunda normativa y fallan en el componente gb.map.

Espero que os sea de utilidad esta información.  Recordad que aunque sean servicios libres, al menos particularmente, a veces tienen un coste para utilizarlos profesionalmente. Y no está de más reconocer la autoría de la información con la propiedad Copyright.
 



 
gatoviejo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mapas Locales En Gb.map 
 
Interesantísima información para los que nos flipan los mapas, muchas gracias!!!

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mapas Locales En Gb.map 
 
Hola, gatoviejo,

como/donde encontraste aquellas direcciones de mapas locales ?

saludos
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mapas Locales En Gb.map 
 
Hola, Vuott

Básicamente, buscando en Google (eso es lo fácil), por ejemplo WMS España. En este caso tuve la suerte que la primera entrada me llevó a https://www.idee.es/directorio-de-s...v=VISUALIZACION con un listado de distintos servicios estatales, autonómicos, locales y países vecinos (Andorra, Francia y Portugal).

Ahora viene lo difícil y paciencia: hay que seguir técnicas de prueba error.
Tomemos por ejemplo el mapa del Camino de Santiago del listado anterior. En este caso el enlace ya nos redirecciona al listado de "capacidades" del mapa, pero si solamente tenemos la raíz de la url, tendremos que añadir la consulta a las capacidades. Por ejemplo, a partir de http://www.ign.es/wms-inspire/camino-santiago generamos la url http://www.ign.es/wms-inspire/camin...etcapabilities. Con esto obtenemos un documento en formato xml.

Desconozco la gran mayoría de la información contenida, pero busco la etiqueta <Layer> que contiene la información de las diversas capas y en este caso encuentro una capa (Camino de Santiago, con etiqueta <Title> pero sin <Name>) que contiene otras capas, estas sí con etiqueta <Name>: "AU.AdministrativeUnit", "GN.GeographicalNames" y "PS.ProtectedSite". En la etiqueta <Abstract> hay un pequeño resumen del contenido.

Ahora hay que rellenar la información necesaria:
WMSArgs!crs: ¿qué sistema geográfico utiliza el mapa? Bajo la capa principal vemos un listado de los CRS soportados. Podríamos escoger cualquiera de ellos, pero ya que está el EPSG:4326, lo seleccionamos y evitamos hacer conversiones.
MaxBounds: límites del mapa. Para el sistema EPSG:4326 vemos que los límites son minx="40.78" miny="-9.38" maxx="43.89" maxy="0.87". Notad que las x tienen valores de longitud y que las y tienen los valores de latitud (al revés de lo podría parecer)
WMSArgs!version: versión de la especificación. La buscamos por todo el fichero y la encontramos escondida en el Abstract principal del documento.
WMSArgs!layers: capa a visualizar. Seleccionamos PS.ProtectedSite
WMSArgs!bbox: parte variable de la url según la porción del mapa que visualizemos. En los ejemplos anteriores siempre ponía "{lon},{lat2},{lon2},{lat}", pero como las x tienen longitud y las y latitud, lo cambiamos por "{lat2},{lon},{lat},{lon2}"
WMSArgs!format: formato de la imagen. Que yo sepa hay "format/png" o "format/jpeg". Si no lo especifica, probamos
WMSArgs!width y WMSArgs!height: tamaño, en píxeles, de la imagen resultante. En el caso del gb.map, espera 256 x 256

Con todo esto nos ha quedado:
With MapView1.Map.AddTile("Camino de Santiago", "http://www.ign.es/wms-inspire/camino-santiago?")
  .MaxBounds = MapBounds(MapPoint(43.89, 0.87), MapPoint(40.78, -9.38))
  .UseWebMapService = True
  .WMSArgs!service = "WMS"
  .WMSArgs!request = "GetMap"
  .WMSArgs!version = "1.3.0"
  .WMSArgs!layers = "PS.ProtectedSite"
  .WMSArgs!crs = "EPSG:4326"
  .WMSArgs!style = "Itinerario"
  .WMSArgs!bbox = "{lat2},{lon},{lat},{lon2}"
  .WMSArgs!format = "image/png"
  .WMSArgs!width = 256
  .WMSArgs!height = 256
End With
 

Para evitar problemas que no vemos nada, mejor fijar un centro dentro de los límites, por ejempo MapPoint(42.5, -4.5)

Ejecutamos y vemos una línea amarilla sobre fondo blanco. ¿A que no esperabas esto? En realidad el mapa solamente es el camino de Santiago, nada más. Para que sea útil hay que complementarlo con el mapa cartográfico e indicarle al mapa del camino que sea transparente en un nuevo argumento de la colección WMSArgs:

MapView1.Map.AddTile("mapaIGN", "http://www.ign.es/wmts/mapa-raster?Layer=MTN&Style=default&TileMatrixSet=GoogleMapsCompatible&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix={z}&TileCol={x}&TileRow={y}")
With MapView1.Map.AddTile("Camino de Santiago", "http://www.ign.es/wms-inspire/camino-santiago?")
  .MaxBounds = MapBounds(MapPoint(43.89, 0.87), MapPoint(40.78, -9.38))
  .UseWebMapService = True
  .WMSArgs!service = "WMS"
  .WMSArgs!request = "GetMap"
  .WMSArgs!version = "1.3.0"
  .WMSArgs!layers = "PS.ProtectedSite"
  .WMSArgs!crs = "EPSG:4326"
  .WMSArgs!style = "Itinerario"
  .WMSArgs!bbox = "{lat2},{lon},{lat},{lon2}"
  .WMSArgs!format = "image/png"
  .WMSArgs!width = 256
  .WMSArgs!height = 256
  .WMSArgs!transparent = "true"
End With
 

Pero además, podemos ver todas las capas a la vez con
.WMSArgs!layers = "PS.ProtectedSite,AU.AdministrativeUnit,GN.GeographicalNames"

Saludos,
 



 
gatoviejo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Gb.net En Redes Locales 4octavio4 General 4 Martes, 18 Enero 2011, 20:32 Ver último mensaje
4octavio4
No hay nuevos mensajes Sockets Locales Mi Pesadilla soplo General 7 Sabado, 26 Febrero 2011, 03:17 Ver último mensaje
soplo
El tema está bloqueado: no pueden editarse ni agregar mensajes. Mapas de visitantes - Estadísticas jguardon Sobre Gambas-es 0 Sabado, 27 Octobre 2012, 12:46 Ver último mensaje
jguardon
No hay nuevos mensajes Declaración De Variables Locales Automát... Shell General 2 Viernes, 30 Noviembre 2012, 10:08 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron