คุณสมบัติจุดหายไปใน Geoserver โดยใช้ WMS


10

ฉันมีไฟล์รูปร่างที่มีประมาณ 6,500 คะแนนทั่วโลกอยู่ในนั้นฉันพยายามให้บริการกับ Geoserver 2.2.1 โดยใช้ WMS เห็นได้ชัดว่าทุกอย่างใช้ได้ดีจนกระทั่งฉันใช้คุณลักษณะการกรองในแอปพลิเคชันไคลเอนต์ซึ่งใช้ใบปลิว เมื่อฉันผนวก CQL_FILTER (ตัวกรองคุณลักษณะไม่ใช่เชิงพื้นที่) ต่อท้ายแบบสอบถาม WMS ฉันสังเกตเห็นคุณลักษณะที่ขาดหายไปเมื่อซูมออก เมื่อฉันซูมกลับมาบางครั้งพวกเขาจะปรากฏขึ้นอีกครั้ง แต่ไม่เสมอไป ดูภาพด้านล่าง -

การเปรียบเทียบแบบเคียงข้างกัน

ที่ระดับการซูมทางด้านซ้ายแอตแลนตาจะไม่ปรากฏขึ้น เมื่อฉันซูมเข้าก็เป็น อย่างไรก็ตามบางครั้งอาจไม่ปรากฏจุดในแทมปาที่ระดับซูมทางด้านซ้าย หากฉันซูมออกอีก 3 ระดับจะไม่มีการแสดงคะแนนใด ๆ ฉันไม่แน่ใจว่าปัญหาคือ CQL_FILTER param เช่นเดียวกับ 6,500 คะแนนมันยากที่จะสังเกตเห็นจุดที่หายไปเพียงไม่กี่จุดในระดับโลก แต่ตัวกรองเฉพาะที่ฉันแสดงที่นี่เป็นตัวอย่างกรองลงไปเพียง 3 คุณสมบัติและเมื่อ 1 ถึง 3 หายไปขึ้นอยู่กับระดับการซูมที่เห็นได้ชัดเจน

ฉันสามารถสร้างพฤติกรรมแบบเดียวกันนี้ซ้ำในเลเยอร์ตัวอย่างของ geoserver โดยใช้ตัวกรอง CQL ในตัวเลือกแผนที่ขั้นสูงดังนั้นฉันค่อนข้างแน่ใจว่าไม่ใช่แอปพลิเคชันไคลเอนต์ของฉัน

สำหรับขั้นตอนของฉันในการแก้ไขข้อบกพร่องนี้ฉันได้ลองใช้ไฟล์สไตล์เริ่มต้น / sld เพื่อแยกแยะสไตล์ของเลเยอร์ของฉันเอง ฉันได้ปิดการแคชทั้งหมดที่ฉันรู้ ฉันตรวจสอบอีกครั้งว่าการคาดการณ์ของฉันถูกต้อง - ฉันสร้างรูปร่างไฟล์ใน ArcGIS 10 โดยใช้ WGS_1984_Web_Mercator_Auxiliary_Sphere เป็นเส้นโครงและเลเยอร์ถูกตั้งค่าเป็น EPSG: 3857 ใน geoserver ซึ่งฉันคิดว่าเทียบเท่า ฉันอัปเกรดจาก geoserver 2.2 เป็น 2.2.1 และมีปัญหาเดียวกันทั้งคู่ ฉันได้ลบไฟล์ดัชนีอวกาศของ geoserver (.qix) และปล่อยให้มันถูกสร้างขึ้นใหม่เนื่องจากฉันเคยเห็นปัญหาที่คล้ายกันใน Arc ที่มีดัชนีเชิงพื้นที่เสียหาย แต่เห็นได้ชัดว่ามันไม่ทำงานเช่นกัน

นี่คือสแนปชอตจากการแสดงตัวอย่างเลเยอร์ของ Geoserver ด้วยตัวกรอง CQL และขยายเข้าไปในพื้นที่เดียวกันตามที่แสดงด้านบน วงกลมสีแดงอยู่ที่ประมาณที่ฉันควรจะเห็นจุดอื่น (แอตแลนตา)

ตัวอย่าง Openlayers

ฉันพยายามปรับแต่งทุกอย่างที่ฉันสามารถนึกได้ แต่ฉันไม่มีโชค ฉันได้ค้นหาบันทึก geoserver และเปิดใช้งานการบันทึก verbose แล้วและไม่เห็นข้อผิดพลาด / ข้อยกเว้นใด ๆ ฉันไม่เห็นคำขอที่ไม่ดีในเครื่องมือสำหรับนักพัฒนาของ Chrome

หากฉันไม่มีข้อมูลที่สำคัญฉันจะให้สิ่งที่ฉันสามารถทำได้ แต่นี่เป็นแอปพลิเคชันภายใน / ไม่ใช่แบบสาธารณะ


1
พิจารณาสิ่งที่ชัดเจน: คุณมีรูปแบบตามขนาดหรือไม่ (เช่นจุดจะปรากฏเฉพาะระหว่างเครื่องชั่งน้ำหนักบางอย่าง)
unicoletti

1
คุณสามารถตรวจสอบว่าค่าใน VENUE_TYPE ถูกต้อง / สอดคล้องกันได้หรือไม่ ผลลัพธ์ที่ไม่สอดคล้องกันที่คุณเห็นอาจเกิดจากคุณสมบัติที่ส่งคืนในลำดับที่แตกต่างกัน (เนื่องจากความแตกต่างเล็กน้อยใน bbox) และหนึ่งในนั้นคือ 'ไม่ดี' ในบางวิธีทำให้การเรนเดอร์หยุดก่อนที่จะพบกับแอตแลนตา อาจเป็นการดีที่จะทดสอบการส่งออกข้อมูลของคุณในรูปแบบที่แตกต่างจากนั้น 1) ตรวจสอบทุกอย่างที่ย้ายตามที่คาดไว้และ 2) ทดสอบตัวกรอง / แสดงผลของคุณอีกครั้ง
tomfumb

1
@unicoletti บนเลเยอร์ที่แสดงในสกรีนช็อตมีการขึ้นต่อกันของสเกล แต่ฉันเห็นผลลัพธ์เดียวกันเมื่อฉันใช้สไตล์ 'จุด' เริ่มต้นที่จัดทำโดย Geoserver ซึ่งไม่มีการขึ้นต่อกันในระดับที่ฉันเห็นว่าจุดเดียวกันนั้นหายไปในระดับเดียวกัน .
MWrenn

1
@tomfumb ฉันดูค่าต่างๆในคอลัมน์ VENUE_TYPE และพวกมันเป็นตัวอักษรและตัวเลขภาษาอังกฤษทั้งหมดยกเว้นเครื่องหมายทับหน้า '/' หรือเครื่องหมายแอมเปอร์แซนด์ '&' เป็นครั้งคราว ฉันจะลบระเบียนด้วยเครื่องหมายทับและเครื่องหมายและดูว่ามันสร้างความแตกต่างหรือไม่ จากบันทึกด้านข้าง DBF ของ shapefile นี้ถูกเข้ารหัสใน UTF-8 ซึ่งฉันตั้งค่าไว้ใน geoserver เช่นกัน นั่นจะสร้างความแตกต่างได้ไหม?
MWrenn

4
@Mrenren ฉันไม่แน่ใจดังนั้นจะไม่พยายามตอบคำถาม แต่การส่งออกข้อมูลไปยังรูปแบบอื่นควรช่วยพิจารณาว่าร้านค้า / รูปแบบปัจจุบันเป็นปัญหาหรือไม่ บางทีลองเปิด Shp ของคุณใน ArcMap หรือ QGIS จำกัด พื้นที่ให้กับ bbox ตัวอย่างของคุณจากนั้นตรวจสอบคุณสมบัติของฟีเจอร์ที่มีอยู่ - สิ่งเหล่านี้รวมถึงอักขระพิเศษที่อาจได้รับผลกระทบจากการเข้ารหัสหรือไม่?
tomfumb

คำตอบ:


1

"วิธีการแก้ปัญหา" ที่ฉันนำไปใช้คือการนำเข้า Shapefiles ไปยังฐานข้อมูล postGIS โดยใช้ shp2pqsql ซึ่งแก้ไขคุณสมบัติจุดที่หายไปเมื่อใช้ตัวกรอง CQL ฉันสามารถทำการร้องขอตัวกรอง CQL ที่เหมือนกันและเห็นจุดทั้งหมดในทุกระดับการซูมทันที จากนั้นฉันต้องปรับกระบวนการอัตโนมัติไม่กี่ครั้งเพื่ออัปเดตฐานข้อมูล postGIS แทนที่จะเป็นรูปร่างไฟล์ แต่ใช้เวลาเพียงไม่กี่ชั่วโมง

ฉันยังไม่แน่ใจเกี่ยวกับสาเหตุที่แท้จริงของคุณลักษณะจุดที่หายไป ฉันลองใช้ตัวประมาณการและตัวเขียนรูปร่างที่แตกต่างกัน (QGis, ESRI, shapefile.py หรือ pyShape หรืออะไรบางอย่าง) ด้วยผลลัพธ์ที่แน่นอนเหมือนกันทุกครั้ง ฉันไม่มีความเชี่ยวชาญใน geoserver ดังนั้นฉันลังเลที่จะเรียกมันว่าบั๊กและอาจเป็นสิ่งที่เฉพาะเจาะจงสำหรับการตั้งค่าของฉัน แต่ฉันสามารถทำซ้ำอินสแตนซ์ที่ต่างกันสองตัวที่รันบนคอมพิวเตอร์สองเครื่องที่ทำงานบน geoserver 2.2 และ 2.2 1 ทั้งบน Windows (One Xp บนเซิร์ฟเวอร์ 2003)

ฉันไม่สามารถโพสต์ไฟล์รูปร่างได้เช่นกันดังนั้นฉันเดาว่าสาเหตุที่แท้จริงจะยังคงเป็นปริศนาอยู่

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