GeoWebCache: ketidakselarasan ubin

9

Saya mencoba untuk menguji peta web sederhana berdasarkan tumpukan PostGIS / Geoserver / OpenLayers pada Windows Server 2008.

Ketika saya memuat lapisan WMS saya dengan:

var gwctest = new OpenLayers.Layer.WMS(
    "gwctest",
    "http://localhost:1979/geoserver/wms",
    {
    'layers': 'Index2000:index_vect_s100',
    'format': 'image/png',
    'srs': 'EPSG:3857', 
    'units': 'm',
    'transparent': true
    },
    {'opacity': 0.8, 'isBaseLayer': false, 'visibility': false}

);

Segalanya tampak baik-baik saja.

teks alternatif

Namun, ketika saya mencoba menambahkan lapisan WMS ke peta saya menggunakan GeoWebCache, ganti

"http://localhost:1979/geoserver/wms"

dengan:

"http://localhost:1979/geoserver/gwc/service/wms"

Data saya tiba-tiba bergerak dari posisi yang benar:

teks alternatif

Ada ide tentang apa yang mungkin menjadi penyebabnya?

EDIT: beberapa info tambahan tentang posting milis GWC .

Radek
sumber
1
Sepertinya masalah pergeseran datum. Anda mungkin perlu mengedit parameter to_wgs proyeksi Anda jika wms Anda sedang diproyeksikan kembali. trac.osgeo.org/proj/wiki/…
geografi
@geographika: Mengapa lapisan yang sama ditampilkan dengan benar tanpa mode GWC?
radek
1
Ini menggunakan file konfigurasi yang berbeda untuk proyeksi? Lihat geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geografi
@geographika: Saya kira itu adalah versi lama dokumen GeoServer. Versi yang lebih baru: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Halaman Konfigurasi GeoWebCache saya mengatakan ubin siap dalam proyeksi 3857, dan ini juga digunakan oleh peta web saya.
radek
apakah Anda pernah memecahkan masalah Anda? Saya mengalami masalah serupa dengan pergeseran yang lebih besar. Saya melihat bahwa geografi talsk tentang posting dengan solusi akhir di forum GWC, tapi saya tidak menemukan posting itu.
user28386

Jawaban:

4

Memperbarui

Lihat tanggapan terhadap pos Radek di forum GWC untuk sebab dan solusi aktual. Saya sekarang mengerti mengapa TileCache memilih untuk menampilkan kesalahan seperti "Nilai x saat ini -1311047.936977 terlalu jauh dari sudut ubin x -1493907.560000" daripada menyerahkan kembali ubin "terdekat" dalam rentang kesalahan arbiter.


Apakah data asli Anda di EPSG 3857? Jika tidak maka hampir pasti pergeseran datum (tidak) terjadi di suatu tempat.

Coba ubah definisi OpenLayers Anda ke referensi EPSG: 900913 - mungkin GeoWebCache tidak mengenali kode web mercator baru?

Dari tautan yang Anda poskan:

Versi terintegrasi GeoWebCache secara otomatis mengkonfigurasi setiap layer dengan dua proyeksi paling umum:

* EPSG:4326 (standard Latitude/Longitude)
* EPSG:900913 (Spherical Mercator, the projection used in Google Maps)

Jika Anda memerlukan proyeksi tambahan, Anda dapat membuat file konfigurasi bernama geowebcache.xml di direktori cache, misalnya /var/geoserver_data/gwc/geowebcache.xml

Kedengarannya seolah-olah Geoserver dan GeoWebCache menggunakan file proyeksi yang berbeda. Mungkin Geoserver Anda memiliki parameter to_wgs dan GWC tidak.

Saat Anda berada di Windows, jalankan Monitor Proses - http://technet.microsoft.com/en-us/sysinternals/bb896645 untuk melihat file mana yang benar-benar Anda akses.

Juga saya kira gambar tidak di-cache setelah Anda mengubah beberapa parameter proyeksi? Coba perbarui / hapus untuk memeriksa.

geografi
sumber
Terima kasih. Ya, data asli ada di 3857. Sepertinya GWC mengenali kode ini: di bagian Demo GWC ada tiga proyeksi yang tersedia untuk digunakan: 3857, 4326, 900913. Dan untuk keperluan peta saya, saya menggunakan 3857. Juga dicoba dengan 900.913 dan kesalahan tetap.
radek
Jika data asli Anda ada di 3857 tanpa pergeseran datum maka saya bayangkan tidak ada proyeksi ulang terjadi di GWC, dan data asli Anda perlu diproyeksikan lagi.
geografi
4

Apakah Anda memiliki setel asal ubin yang benar untuk OpenLayers.Map Anda seperti di GeoWebCache. Periksa bagaimana TileOrigin diatur dalam demo GeoWebCache pada layer dan pastikan Anda memiliki TileOrigin yang sama pada konstruktor OpenLayers.Map Anda.

Peter
sumber
Terima kasih. Saya sudah mencoba mengaturnya sebagai: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" di mana maxExtent diatur sesuai dengan demo GWC pada layer. Masih belum benar.
radek
Apa pengaturan GWC Anda, Anda mungkin perlu menyesuaikan pengaturan DPI di GWC atau OpenLayers
Peter
Saya mencoba menyesuaikan pengaturan DPI sesuai dengan preview demo GWC pada layer. Tidak membantu
radek
3

Misalignment seperti ini hampir selalu merupakan masalah proyeksi. Apakah data disimpan dalam EPSG: 3857? Periksa apakah lapisan GeoWebCache dikonfigurasi untuk menghasilkan dalam EPSG: 3857.

Sean
sumber
Ya, dataset ada di 3857 dan GWC juga dikonfigurasi untuk itu.
radek
2

Sudahkah Anda mencoba membersihkan cache?

Dave Lowther
sumber
Ya saya lakukan.
radek