GeoWebCache: การวางแนวของกระเบื้อง


9

ฉันพยายามทดสอบแผนที่เว็บอย่างง่ายโดยใช้ PostGIS / Geoserver / OpenLayers stack บน Windows Server 2008

เมื่อฉันโหลด WMS เลเยอร์ของฉันโดย:

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}

);

ดูเหมือนว่าทุกอย่างจะดี

ข้อความแสดงแทน

อย่างไรก็ตามเมื่อฉันพยายามเพิ่มเลเยอร์ WMS ลงในแผนที่ของฉันโดยใช้ GeoWebCache แทน

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

ด้วย:

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

ข้อมูลของฉันถูกย้ายจากตำแหน่งที่ถูกต้อง:

ข้อความแสดงแทน

ความคิดเห็นเกี่ยวกับสิ่งที่อาจเป็นสาเหตุ?

แก้ไข: บางข้อมูลเพิ่มเติมเกี่ยวกับรายชื่อผู้รับจดหมาย GWC โพสต์


1
ดูเหมือนว่าปัญหาการเปลี่ยนแปลงข้อมูล คุณอาจต้องแก้ไขการฉาย to_wgs พารามิเตอร์ของคุณถ้า wms ของคุณกำลังถูกปฏิเสธ trac.osgeo.org/proj/wiki/…
geographika

@geographika: ทำไมเลเยอร์เดียวกันจึงแสดงอย่างถูกต้องโดยไม่มีโหมด GWC?
radek

1
มันใช้ไฟล์กำหนดค่าที่แตกต่างกันสำหรับการฉาย? ดูgeoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika

@geographika: ฉันคิดว่ามันเป็นเอกสาร GeoServer เวอร์ชันเก่า รุ่นใหม่: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache หน้าการกำหนดค่า GeoWebCache ของฉันบอกว่าไทล์พร้อมแล้วในการฉาย 3857 และนี่ก็เป็นโปรแกรมที่ใช้โดยแผนที่เว็บของฉันเช่นกัน
radek

คุณเคยแก้ปัญหาของคุณหรือไม่? ฉันมีปัญหาที่คล้ายกันกับการเปลี่ยนแปลงที่ยิ่งใหญ่ ฉันเห็นว่า geographika talsk เกี่ยวกับการโพสต์ด้วยสาเหตุสิ้นสุดการแก้ไขในฟอรัม GWC แต่ฉันไม่พบโพสต์นั้น
28386

คำตอบ:


4

ปรับปรุง

ดูการตอบสนองต่อโพสต์ของ Radek ในฟอรัม GWC สำหรับสาเหตุและการแก้ไขที่เกิดขึ้นจริง ตอนนี้ฉันเข้าใจแล้วว่าทำไม TileCache เลือกที่จะแสดงข้อผิดพลาดเช่น "ค่า x ปัจจุบัน -1311047.936977 นั้นไกลเกินไปจากมุมของกระเบื้อง x -1493907.560000" แทนที่จะส่งกลับแผ่น "ใกล้ที่สุด" ภายในช่วงข้อผิดพลาดทางโบราณคดี


เป็นข้อมูลต้นฉบับของคุณใน EPSG 3857 หรือไม่ ถ้าไม่เช่นนั้นมันเป็นการเปลี่ยนแปลงที่แน่นอน (ไม่) เกิดขึ้นที่ไหนสักแห่ง

ลองเปลี่ยนคำจำกัดความของ OpenLayers เพื่ออ้างอิง EPSG: 900913 - บางที GeoWebCache ไม่รู้จักรหัส Mercator ของเว็บใหม่

จากลิงค์ที่คุณโพสต์:

รุ่นรวมของ GeoWebCache จะกำหนดค่าทุกเลเยอร์โดยอัตโนมัติด้วยการประมาณสองแบบ:

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

หากคุณต้องการโปรเจ็กต์เพิ่มเติมคุณสามารถสร้างไฟล์กำหนดค่าชื่อ geowebcache.xml ในไดเรกทอรีแคชตัวอย่างเช่น /var/geoserver_data/gwc/geowebcache.xml

ฟังดูราวกับว่า Geoserver และ GeoWebCache ใช้ไฟล์ฉายภาพที่แตกต่างกัน บางที Geoserver ของคุณมีพารามิเตอร์ to_wgs และ GWC ไม่มี

ในขณะที่คุณอยู่บน Windows ให้เรียกใช้การตรวจสอบกระบวนการ - http://technet.microsoft.com/en-us/sysinternals/bb896645เพื่อดูว่าคุณกำลังเข้าถึงไฟล์ใด

นอกจากนี้ฉันคิดว่าภาพไม่ได้ถูกแคชหลังจากคุณเปลี่ยนพารามิเตอร์การฉายภาพบ้างไหม? ลองทำซ้ำ / ลบเพื่อตรวจสอบ


ขอบคุณ ใช่ข้อมูลต้นฉบับอยู่ใน 3857 ดูเหมือนว่า GWC รู้จักรหัสนี้: ในส่วนของ GWC Demos มีการฉายภาพสามแบบให้ใช้: 3857, 4326, 900913 และสำหรับจุดประสงค์ของแผนที่ของฉันฉันใช้ 3857 เช่นกัน ด้วย 900913 และข้อผิดพลาดยังคงอยู่
radek

หากข้อมูลต้นฉบับของคุณอยู่ใน 3857 โดยไม่มีการเปลี่ยนแปลงตัวเลขฉันจะจินตนาการว่าไม่มีการคัดลอกเกิดขึ้นใน GWC และข้อมูลต้นฉบับของคุณต้องได้รับการปฏิเสธอีกครั้ง
geographika

4

คุณมีชุดต้นกำเนิดกระเบื้องที่ถูกต้องสำหรับ OpenLayers.Map ของคุณเหมือนใน GeoWebCache หรือไม่ ตรวจสอบวิธีการตั้งค่า TileOrigin ใน GeoWebCache-demo ของเลเยอร์และตรวจสอบให้แน่ใจว่าคุณมี TileOrigin เดียวกันบน OpenLayers.Map Constructor ของคุณ


ขอบคุณ ฉันได้ลองตั้งค่าเป็น: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" โดยที่ maxExtent ตั้งค่าตามการสาธิต GWC ของเลเยอร์ ยังไม่ถูกต้อง
radek

การตั้งค่า GWC ของคุณคืออะไรคุณอาจต้องปรับการตั้งค่า DPI ทั้งใน GWC หรือ OpenLayers
Peter

ฉันลองปรับการตั้งค่า DPI ตามตัวอย่างการสาธิต GWC ของเลเยอร์ ไม่ช่วย
radek

3

การเยื้องศูนย์เช่นนี้มักเป็นปัญหาเกี่ยวกับการคาดการณ์ ข้อมูลถูกจัดเก็บใน EPSG: 3857 หรือไม่ ตรวจสอบว่ามีการกำหนดค่าเลเยอร์ GeoWebCache เป็นเอาต์พุตใน EPSG: 3857


ใช่ชุดข้อมูลอยู่ใน 3857 และ GWC ได้รับการกำหนดค่าด้วย
radek

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.