Search code examples
c#vb.netgeoserversharpmap

sending wms request to geoserver via brutile/sharpmap to load tiled map (tiled=true)


I want to load tiled map in a mapbox of SharpMap. I have GeoServer and send WMS request to that but I receive only single tile map. how can I receive multi-tile map? here is my code:

    Dim wmsUrl As String = "http://192.168.21.202:8080/geoserver/threem/gwc/service/wms?tiled=true&version=1.1.0"
    Dim layWms As New SharpMap.Layers.WmsLayer("threem_zoom", wmsUrl)
    layWms.AddLayer("threem_zoom")
    layWms.SetImageFormat("image/png")
    layWms.TimeOut = 5000
    layWms.SRID = 4326
    layWms.Version = "1.1.0"
    MapBox1.Map.Layers.Add(layWms)
    MapBox1.PanOnClick = True
    MapBox1.Map.ZoomToExtents()
    MapBox1.Refresh()

Solution

  • This is possible using SharpMap's TileLayerAsync. See an sample of TileLayerAsync here. You need to specify a suitable tile source.

    With GeoServer's tile=true it looks you still publish it as an ordinary WMS but taking into account label placing. In this case you need to something like this here

    Perhaps better is to use GeoServer to publish it as a proper tile layer using TMS, WMTS or WMS-C. In that case you need to access it through BruTile's HttpTileSource.