Differenze tra le versioni di "Utilizzare in una MapView mappe fornite secondo lo standard WMS (Web Map Service)"
Riga 11: | Riga 11: | ||
E' bene ricordare che, anche se sono servizi liberi, è opportuno riconoscere l'autore delle informazioni con la proprietà Copyright. | E' bene ricordare che, anche se sono servizi liberi, è opportuno riconoscere l'autore delle informazioni con la proprietà Copyright. | ||
+ | |||
+ | |||
+ | |||
+ | ===Usare le mappe topografiche IGM 1:25000 di ciascuna Regione, fornite dal Servizio Geologico d'Italia dell'I.S.P.R.A.=== | ||
+ | Mostriamo un esempio pratico, usando le carte topografiche 1:25000, edite dall'I.G.M., relative all'intero territorio della Regione Lazio: | ||
+ | Private mv As MapView | ||
+ | Private mn1 As Menu | ||
+ | Private mn2 As Menu | ||
+ | |||
+ | |||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | Dim tile As _MapTile | ||
+ | |||
+ | With Me | ||
+ | .W = Screen.AvailableWidth | ||
+ | .H = Screen.AvailableHeight | ||
+ | End With | ||
+ | |||
+ | With mn1 = New Menu(Me) | ||
+ | .Caption = "Lat. " | ||
+ | End With | ||
+ | With mn2 = New Menu(Me) | ||
+ | .Caption = " Lon. " | ||
+ | End With | ||
+ | |||
+ | With mv = New MapView(Me) As "MapView1" | ||
+ | .X = 0 | ||
+ | .Y = 0 | ||
+ | .W = Me.W | ||
+ | .H = Me.H - (Me.H * 0.05) | ||
+ | .Background = Color.Violet | ||
+ | .Map.Zoom = 14 | ||
+ | .Map.Center = MapPoint(41.890250, 12.492295) | ||
+ | End With | ||
+ | |||
+ | With tile = mv.Map.AddTile("Italia Lazio", "http&058;//sgi2.isprambiente.it/arcgis/services/raster/igm25k_lazio_wgs/ImageServer/WMSServer?") | ||
+ | .MaxBounds = MapBounds(MapPoint(40.781553, 11.449740), MapPoint(42.921401, 14.086235)) | ||
+ | .UseWebMapService = True | ||
+ | .Copyright = "I.S.P.R.A. - Servizio Geologico d'Italia - http&058;//portalesgi.isprambiente.it/it" | ||
+ | .WMSArgs!service = "WMS" | ||
+ | .WMSArgs!request = "GetMap" | ||
+ | .WMSArgs!version = "1.3.0" | ||
+ | .WMSArgs!layers = "igm25k_lazio_wgs" | ||
+ | .WMSArgs!crs = "EPSG:4326" | ||
+ | .WMSArgs!bbox = "{lat2},{lon},{lat},{lon2}" | ||
+ | .WMSArgs!format = "image/png" | ||
+ | .WMSArgs!width = 256 | ||
+ | .WMSArgs!height = 256 | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub MapView1_MouseUp() | ||
+ | |||
+ | Dim pt As New Point(Mouse.X, Mouse.Y) | ||
+ | |||
+ | <FONT Color=gray>' ''Otteniamo le coordinate geografiche del punto della carta topografica sul quale si è cliccato con il mouse:''</font> | ||
+ | mn1.Caption = "Lat. " & CStr(mv.Map.PixelToMapPointRel(pt).Lat) | ||
+ | mn2.Caption = " Lon. " & CStr(mv.Map.PixelToMapPointRel(pt).Lon) | ||
+ | |||
+ | '''End''' | ||
Versione delle 10:57, 29 apr 2020
Come è noto, il Componente gb.map di Gambas è in grado di ottenere e gestire mappe predefinite di servizi WMTS (Web Map Tile Service) che utilizzano il sistema di coordinate EPSG:4326.
Oltre ai servizi WMTS, il componente può anche ottenere dati da servizi WMS (Web Map Service), ma ciò richiede più parametrizzazione.
Esempi di questi casi sono:
............
I servizi WMTS e WMS sono definiti dall'Open Geospatial Consortium (OGC) ed è stabilito che per il WMTS, il livello di zoom 1 è un mosaico di 2x2 tessere, il livello 2 di 4x4, e così via, ed è quello che contempla il Componente gb.map. Ma definisce anche un'altra normativa in cui il livello 1 di zoom è un mosaico di 4x2 tessere, il livello 2 di 8x4 tessere, e così via. Alcuni server hanno questa seconda normativa e falliscono nel loro uso con il Componente gb.map.
E' bene ricordare che, anche se sono servizi liberi, è opportuno riconoscere l'autore delle informazioni con la proprietà Copyright.
Usare le mappe topografiche IGM 1:25000 di ciascuna Regione, fornite dal Servizio Geologico d'Italia dell'I.S.P.R.A.
Mostriamo un esempio pratico, usando le carte topografiche 1:25000, edite dall'I.G.M., relative all'intero territorio della Regione Lazio:
Private mv As MapView Private mn1 As Menu Private mn2 As Menu Public Sub Form_Open() Dim tile As _MapTile With Me .W = Screen.AvailableWidth .H = Screen.AvailableHeight End With With mn1 = New Menu(Me) .Caption = "Lat. " End With With mn2 = New Menu(Me) .Caption = " Lon. " End With With mv = New MapView(Me) As "MapView1" .X = 0 .Y = 0 .W = Me.W .H = Me.H - (Me.H * 0.05) .Background = Color.Violet .Map.Zoom = 14 .Map.Center = MapPoint(41.890250, 12.492295) End With With tile = mv.Map.AddTile("Italia Lazio", "http&058;//sgi2.isprambiente.it/arcgis/services/raster/igm25k_lazio_wgs/ImageServer/WMSServer?") .MaxBounds = MapBounds(MapPoint(40.781553, 11.449740), MapPoint(42.921401, 14.086235)) .UseWebMapService = True .Copyright = "I.S.P.R.A. - Servizio Geologico d'Italia - http&058;//portalesgi.isprambiente.it/it" .WMSArgs!service = "WMS" .WMSArgs!request = "GetMap" .WMSArgs!version = "1.3.0" .WMSArgs!layers = "igm25k_lazio_wgs" .WMSArgs!crs = "EPSG:4326" .WMSArgs!bbox = "{lat2},{lon},{lat},{lon2}" .WMSArgs!format = "image/png" .WMSArgs!width = 256 .WMSArgs!height = 256 End With End Public Sub MapView1_MouseUp() Dim pt As New Point(Mouse.X, Mouse.Y) ' Otteniamo le coordinate geografiche del punto della carta topografica sul quale si è cliccato con il mouse: mn1.Caption = "Lat. " & CStr(mv.Map.PixelToMapPointRel(pt).Lat) mn2.Caption = " Lon. " & CStr(mv.Map.PixelToMapPointRel(pt).Lon) End
Note
- Questa pagina è stata redatta seguendo le preziose indicazioni fornite da gatoviejo, membro del forum www.gambas-es.org.
Pagina in costruzione !