The difference between WMS 1.1.1 and 1.3.0 is two fold.
CHANGE NO 1 - CRS/SRS Usage
Use SRS for 1.1.1
Use CRS for 1.3.0
CHANGE No 2 - WMS 1.3.0 ONLY
The order of parameters for BBOX depends on whether the CRS definition has flipped axes. You will see this in the GetCapabilities request at 1.3.0 - the response should show the flipped axes.
BBOX=xmin,ymin,xmax,ymax NON-FLIPPED
BBOX=ymin,xmin,ymax,xmax FLIPPED
I have made a list of EPSG codes that need to be flipped by creating a SpatiaLite 4.3.0 database and then saving this SQL request to file:
SELECT auth_srid, has_flipped_axes, ref_sys_name, axis_1_name, axis_1_orientation, axis_2_name, axis_2_orientation FROM "spatial_ref_sys_all" WHERE auth_name = "epsg";
You will then see that EPSG:4326 needs to have flipped axes.
4326 1 WGS 84 Latitude North Longitude East
THIS IS THE CORRECTED 1.3.0 REQUEST
Change is BBOX=24,-126,50,-66
http://mesonet.agron.iastate.edu/cgi-bin/mapserv/mapserv?map=/mesonet/www/apps/iemwebsite/data/wms/goes/conus_ir.map&SERVICE=WMS&REQUEST=GetMap&VERSION=1.3.0&WIDTH=256&HEIGHT=256&FORMAT=image/png&TRANSPARENT=TRUE&BBOX=24,-126,50,-66&LAYERS=conus_ir_4km_900913,conus_ir_4km&CRS=EPSG:4326&STYLES&
Your resolutions array is based on a different extent to the tilegrid (and also assumes 256px tiles). Assuming your server is using a standard EPSG:3857 tilegrid this should work:
var tileGrid = new ol.tilegrid.TileGrid({
minZoom: 6,
extent: projExtent,
resolutions: resolutions.slice(1),
tileSize: [512, 512]
});
var demolayer2 = new ol.layer.Tile({
source: new ol.source.TileWMS({
url: 'http://localhost:8080/geoserver/gwc/service/wms',
params: { 'LAYERS': 'topp:states', 'TILED': true, 'SRS': 'EPSG:3857'},
serverType: 'geoserver',
tileGrid: tileGrid
}),
extent: [-13884991, 2870341, -7455066, 6338219]
})
If the server's tilegrid is based on your own custom extent you should calculate your resolutions array from that.
Best Answer
There is a WFS service available, too, which allows you to access the underlying data that you see in the WMS response. You can browse all of these here in the Geoserver interface:
https://maps.huntscore.com/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.demo.MapPreviewPage
Then you can make a request just for the feature you want, which is well covered by this question's answers: Passing Filter Parameters to GeoServer WFS via URL?
The query you want is something like this (this one returns GeoJSON):
https://maps.huntscore.com/geoserver/ows?service=wfs&version=1.0.0&request=getfeature&typename=colorado:BigGameGMUBoundaries12092014&CQL_FILTER=GMUID=84&outputFormat=application/json
You will need to apply your own styling once you have the features you are after. Perhaps the best thing to do is to continue requesting the WMS image as you are already doing, but also overlay the result of the WFS request on top in the client, and style that as you see fit.
EDIT: to stay within WMS, what you want to do is specify multiple layers (well, the same layer twice), and apply two filters, and two styles:
http://maps.huntscore.com:8080/geoserver/colorado/wms?service=WMS&version=1.1.0&request=GetMap&layers=colorado:BigGameGMUBoundaries12092014,BigGameGMUBoundaries12092014&cql_filter=GMUID%3E0;GMUID=84&styles=MiniMap_Outlines,MiniMap_Polygon&bbox=139992.54690000042,4094064.75,763240.4375,4546735.0&width=768&height=557&srs=EPSG:26913&format=image%2Fpng