ฉันมีปัญหาที่ยุ่งยากมาก: ฉันมีฐานข้อมูล Postgis 2.0 ใช้เป็นที่เก็บข้อมูลสำหรับ Geoserver 2.1.3
ฉันมีตารางที่มีคอลัมน์รูปทรงเรขาคณิต (ชื่อรูปร่าง) ด้วย SRID 4326
ฉันได้สร้างมุมมองเช่นนี้:
CREATE VIEW pippo AS SELECT st_geometryn(shape,1) as geom FROM events
จากนั้นฉันก็เผยแพร่มุมมองโดยใช้ geoserver ทุกอย่างทำงานได้ยกเว้นการร้องขอ GetFeatureInfo ที่ล้มเหลวด้วยข้อผิดพลาด 'การดำเนินการกับรูปแบบ SRID ผสมแบบง่าย
select * from geometry_columns
ส่งคืนว่า SRID ของ pippo.geom เป็น 0 (แต่ควรเป็น 4326)
ฉันพยายามด้วยคำจำกัดความนี้สำหรับมุมมอง
CREATE VIEW pippo AS SELECT st_setsrid(st_geometryn(shape,1), 4326) as geom FROM events
แต่ฉันยังมี SRID = 0 ใน geometry_columns .... ความช่วยเหลือใด ๆ
นี่คือวิธีการกำหนดเลเยอร์ใน Geoserver:
วิธีแก้ปัญหา
ฉันพบวิธีแก้ปัญหาในการแก้ไขไม่ใช่ปัญหา แต่เพื่อให้ Geoserver ทำการค้นหาเชิงพื้นที่ในการร้องขอของ GetFeatureInfo:
แทนที่จะสร้างมุมมองและเผยแพร่มุมมองฉันเผยแพร่ SQL-layer ที่กำหนดโดยตรงใน geoserver ในรูปแบบเลเยอร์คำจำกัดความอนุญาตให้ฉันเลือกประเภท gemoetry ที่ถูกต้องและ SRID และทุกอย่างทำงานได้ทันที!