konto usunięte

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

Mam problem z wyświetlaniem warstw wms w EPSG:2180 (dane pobierane są z bazy PostgreSQL). Mimo ustawień nadal wszystko wyświetla się w WGS 84. Prosiłbym o pomoc w ustawieniu poprawnego wyświetlania warstw.

PostGIS:
- SRS: EPSG:2180
(Warstwa podłączona w QGIS wyświetla się poprawnie, także przy podglądzie warstwy w GeoServerze jako png (w podglądzie warstw) jest wszystko poprawnie)

Ustawienia warstwy na GeoServerze:
- Natywny SRS: EPSG:2180
- Deklarowany SRS: EPSG:2180
- Obsługa: Wymuś deklarowany

Fragment kodu w OpenLayers:
layer = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://localhost:8080/geoserver/wms",
{ srs: 'EPSG:2180', layers: 'postgis:ot_adja_a' }
);

fragment logu z GeoServera:
...
2014-05-23 11:52:07,243 INFO [geoserver.wms] -
Request: getMap
Width = 256
Height = 256
BgColor = java.awt.Color[r=255,g=255,b=255]
Tiled = false
Palette = null
SRS = EPSG:4326
FeatureVersion = null
Styles = [StyleImpl[ name=ot_adms_a]]
Layers = [org.geoserver.wms.MapLayerInfo@4d52ecd4]
TilesOrigin = null
MaxFeatures = null
Crs = GEOGCS["WGS 84",
DATUM["World Geodetic System 1984",
SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["EPSG","4326"]]
Bbox = SRSEnvelope[20.21484375 : 20.390625, 53.0859375 : 53.26171875]
RemoteOwsType = null
RemoteOwsURL = null
Env = {}
FormatOptions = {}
Angle = 0.0
CQLFilter = null
Elevation = []
FeatureId = null
StartIndex = null
ViewParams = null
Transparent = false
SldBody = null
ValidateSchema = false
Sld = null
SldVersion = null
Exceptions = SE_XML
Buffer = 0
Filter = null
Format = image/jpeg
Filters = null
Time = []
Get = true
BaseUrl = http://localhost:8080/geoserver/
RawKvp = {BBOX=20.21484375,53.0859375,20.390625,53.26171875, VERSION=1.1.1, FORMAT=image/jpeg, SERVICE=WMS, HEIGHT=256, LAYERS=postgis:ot_adja_a, REQUEST=GetMap, STYLES=, SRS=EPSG:4326, WIDTH=256}
RequestCharset = UTF-8
Version = 1.1.1
Request = GetMap
Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

a w zapytaniu masz jaką wartość parametru srs/crs? nie przypadkiem EPSG:4326?

konto usunięte

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

Przejrzałem ustawienia na GeoServerze: workspace i store (tutaj nie ma żadnych ustawień odnośnie układu) i ustawienia warstwy (zakładki Dane, Publishing, Dimensions, Buforowanie Kafelków). W zakładce dane jest jak podałem:
- Natywny SRS: EPSG:2180
- Deklarowany SRS: EPSG:2180
- Obsługa: Wymuś deklarowany
W zakładce Publishing oprócz stylu nie ma nic wypełnionego
W zakładce Dimensions nie ma nic odnośnie układu.
W zakładce Buforowanie Kafelków utworzyłem nawet siatkę kartograficzną dla EPSG:2180.

u kodzie strony też jedyne co podałem, to:
layer = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://localhost:8080/geoserver/wms",
{ srs: 'EPSG:2180', layers: 'postgis:ot_adja_a' }
);

Gdzie jeszcze może być coś ustawione co ma wpływ na układ?
Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

a sama mapa? ol wymusi dla warstwy wms układ odniesienia mapy, chyba że warstwa będzie funkcjonowała jako base layer (aktywna).

konto usunięte

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

Format zapisu tej warstwy: PostgreSQL database with PostGIS extension

W bazie:
Źródło danych: PostgreSQL/PostGIS
PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.7.2-5) 4.7.2, 64-bit
PostGIS 2.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1

Źródło tej warstwy:
dbname='gis' host=localhost port=5432 user='xxx' sslmode=disable key='ogc_fid' srid=2180 type=POLYGON table="public"."ot_bubd_a" (wkb_geometry) sql=

Zasięg: W jednostkach układu odniesienia warstwy
xMin,yMin 542745.75,551111.12 : xMax,yMax 577245.12,594138.06

Przestrzenny układ odniesienia warstwy:
+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

OpenLayers:
var lon = 19.9;
var lat = 53.0;
var zoom = 11;
var map, layer;

function init() {
map = new OpenLayers.Map( 'map', { controls: [] } );
layer = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://192.168.107.89:8080/geoserver/wms",
{ srs: 'EPSG:2180', layers: 'postgis:ot_adja_a' },
{ isBaseLayer: true }
);
map.addLayer(layer);

var panel = new OpenLayers.Control.Panel({
createControlMarkup: function(control) {
var button = document.createElement('button'),
iconSpan = document.createElement('span'),
textSpan = document.createElement('span');
iconSpan.innerHTML = ' ';
button.appendChild(iconSpan);
if (control.text) {
textSpan.innerHTML = control.text;
}
button.appendChild(textSpan);
return button;
}
});

map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}

nie wiem, gdzie jeszcze można coś zmienić/sprawdzić.
Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

jak sprawdzisz odwzorowanie mapy (map.getProjectionObject()), to zobaczysz, ze jest ona ciagle w 4326.
srs na definicj warstwy nie oznacza wcale, ze mapa przyjmie to odwzorowanie.
dodaj za isBaseLayer:true jeszcze jeden parametr: projection: 'EPSG:2180': {isBaseLayer:true, projection: 'EPSG:2180'}

konto usunięte

Temat: Problem z wyświetlaniem warstw w EPSG:2180 (GeoServer)

dziękuję za podpowiedź. rozwiązanie (dodanie mapOptions rozwiązało problem):

var mapOptions = {
projection: new OpenLayers.Projection('EPSG:2180'),
units: 'm',
minResolution: '1',
maxResolution: '4000',
resolutions: [
3052.7655842634194,
1526.3827921317097,
763.1913960658549,
381.59569803292743,
190.79784901646372,
95.39892450823186,
47.69946225411593,
23.849731127057964,
11.924865563528982,
5.962432781764491,
2.9812163908822455,
1.4906081954411228
],
maxExtent: new OpenLayers.Bounds(150000, 120000, 920000, 800000),
maxScale: 1000000
};
map = new OpenLayers.Map('map', mapOptions);
var ot_adms_a = new OpenLayers.Layer.WMS(
"ot_adms_a",
"http://localhost:8080/geoserver/wms",
{layers: 'postgis:ot_adja_a', projection: 'EPSG:2180', isBaseLayer: true},
{singleTile: true}
);
map.addLayer(ot_adms_a);
alert(map.getProjectionObject());
map.zoomToMaxExtent();

Następna dyskusja:

lokalny WMTS OSM z GeoSerwe...




Wyślij zaproszenie do