คำถามติดแท็ก openlayers

ใช้เมื่อเวอร์ชันที่คุณใช้ชุดเครื่องมือไคลเอ็นต์ OpenLayers JavaScript คือ 3 หรือใหม่กว่า

4
รับ Center of Geometry ใน OpenLayers 3
ได้รับGeometryวัตถุใน OpenLayers 3 เราจะไปรับจุดศูนย์กลางได้อย่างไร OpenLayers เวอร์ชันที่เก่ากว่านั้นให้getCentroidวิธี นอกจากนี้ยังมีgetBoundsวิธีแก้ปัญหา แต่ดูเหมือนว่าสิ่งเหล่านี้จะถูกลบออกใน OpenLayers 3

1
วิธีรับตำแหน่งคุณลักษณะใน OpenLayers v3
หลังจากที่ฉันใช้การโต้ตอบการวาดหรือปรับเปลี่ยนการโต้ตอบฉันมีฟังที่ส่งกลับคุณสมบัติที่แก้ไขหรือเพิ่ม ตัวอย่าง draw.on('drawend', function (event) { // get the feature var feature = event.element; // ...listen for changes on it logStatus(feature.getId()); }); ฉันรู้วิธีรับรหัส แต่ฉันต้องการตำแหน่ง (ไม่ช้า) ของคุณสมบัติเพราะฉันต้องการบันทึกลงในฐานข้อมูลฉันจะทำอย่างไร ฉันไม่พบมันใน API

1
OpenLayers Hide / Show Layers จากช่องทำเครื่องหมายภายนอก
ฉันใช้ OpenLayers กับ mapserver เพื่อแสดงภาพแรสเตอร์จำนวนมากและเลเยอร์ wms ที่น่าสงสัย ทุกอย่างทำงานได้ดีเลเยอร์สามารถเปิด / ปิดได้ในตัวสลับเลเยอร์ OpenLayers ... แต่ตอนนี้ฉันต้องการเปิด / ปิดเลเยอร์ด้วยกล่องกาเครื่องหมายภายนอกและฉันไม่รู้วิธีการทำเช่นนี้ ฉันยังใหม่กับ Javascript เล็กน้อยสิ่งเดียวที่ฉันรู้คือฉันต้องส่งค่าเลเยอร์ช่องทำเครื่องหมายไปยังฟังก์ชัน OpenLayers จนถึงตอนนี้ฉันพยายามโทรหาฟังก์ชั่นด้วยเหตุการณ์ onClick <input type="checkbox" name="ckeckbox_layer1" onClick="layervisibility(this.checked);"> แต่ฉันไม่ทราบว่าฟังก์ชั่น 'layervisibility' มีหน้าตาอย่างไรเพื่อให้เลเยอร์ของฉันที่วางอยู่ใน openlayers init () ฟังก์ชั่นเปิด / ปิดอย่างถูกต้องเมื่อฉันทำเครื่องหมาย / ไม่เลือกช่องทำเครื่องหมาย
11 openlayers 

1
OpenLayers 3 - วาดเส้น / เส้นทางหลายเส้นตามพิกัด
ฉันพยายามวาดเส้นตามพิกัดที่ให้ (จุดเริ่มต้นและจุดสิ้นสุด) Googled พบตัวอย่างเล็ก ๆ น้อย ๆ แต่ดูเหมือนว่าไม่ใช่พวกมันอาจจะทำงานได้เพราะมันใช้กับ OL2 ดังนั้นนี่จึงเป็นทางเลือกสุดท้ายของฉัน พิกัดตั้งอยู่ในอาร์เรย์เครื่องหมาย <!doctype html> <html lang="en"> <head> <link rel="stylesheet" href="css/ol.css" type="text/css"> <style> .map { height: 100%; width: 100%; } </style> <script src="build/ol.js" type="text/javascript"></script> </head> <body> <div id="map" class="map"></div> <script type="text/javascript"> // inicijalizacija mape var map = new ol.Map({ target: 'map', layers: …
10 openlayers 

2
วิธีที่ดีที่สุดในการแสดงรูปหลายเหลี่ยมหลายพันใน Openlayers คืออะไร
ฉันกำลังพยายามสร้างแผนที่ Openlayers ที่จะแสดงรูปหลายเหลี่ยมหลายพัน และเมื่อผู้ใช้คลิกที่แต่ละฉันต้องการให้บางส่วนของเมตาดาต้าที่จะแสดง การทำงานกับชุดข้อมูลขนาดใหญ่นี้ดูเหมือนว่าจะเป็นการท้าทาย แต่ฉันพยายามที่จะคิดออกว่ามีวิธีมาตรฐานที่จะไปเกี่ยวกับเรื่องนี้ เมื่อมาถึงจุดนี้ฉันคิดว่าฉันควรจะอย่างใดอย่างหนึ่ง แสดงรูปหลายเหลี่ยมของฉันด้วย WMS และใช้ getfeatureinfo แสดงด้วย WFS, โหลดด้วย Strategy.BBOX และใช้ GetFeature เพื่อรับข้อมูลเนื้อหา มีวิธีตรรกะไหมที่ฉันพลาดการโหลดข้อมูลทั้งหมดนี้ลงในแผนที่และมีความเร็วที่ดี ฉันดูที่หน้านี้และพยายามหาว่าพวกเขาทำอะไร: http://protectedplanet.net/

2
วิธีสร้างรูปหลายเหลี่ยมแบบวงกลมใน openlayers 3
ดังนั้นฉันอยากจะแก้ไขตัวอย่างนี้: http://openlayers.org/en/v3.0.0/examples/tissot.html?q=circle ปัญหาคือเมื่อฉันพยายามใช้กับแผนที่ของฉันมันไม่ทำงานอาจเป็นเพราะฉันใช้สไตล์ OSM ซึ่งไม่เป็นทรงกลม: var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ source: vectorSource }) ], renderer: 'canvas', target: 'map', view: new ol.View({ center: ol.proj.transform([2.1833, 41.3833], 'EPSG:4326', 'EPSG:3857'), zoom: 2 }) }); และสำหรับคำถาม: จะสร้างรูปหลายเหลี่ยมแบบวงกลมได้อย่างไร อย่างที่ฉันเห็นมีสองทางเลือก: อย่างใดแปลง geom.Circle ใน geom.Polygon ซึ่งฉันไม่สามารถทำได้ขึ้นอยู่กับระดับ noob ของฉัน …

1
OpenLayers 4 ความแตกต่างจาก 3.x [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ใน OpenLayers 4 changelogsจะอธิบาย: ต่างจากสวิตช์จาก v2.x เป็น v3.x ซึ่งทำเครื่องหมายการเขียนใหม่อย่างสมบูรณ์ของไลบรารีด้วย API ใหม่ทั้งหมดตอนนี้การเพิ่มรุ่นหลักก็หมายความว่าผู้ใช้ควรใส่ใจกับส่วน 'การเปลี่ยนแปลงที่ขาด' ของบันทึกการอัพเกรด แต่ " semanting versioning " กล่าวว่า: รุ่น MAJOR เพิ่มขึ้นเมื่อคุณทำการเปลี่ยนแปลง API ที่เข้ากันไม่ได้ ดังนั้นฉันไม่เข้าใจ: ถ้า OL API ไม่เปลี่ยนแปลงทำไมรุ่นหลัก OL ถึงเพิ่มเป็น 4 บางคนสามารถอธิบายได้ดีกว่า

3
เพิ่มเลเยอร์ GeoJSON ใน OpenLayers 3
ฉันมีไฟล์ GeoJSON ชื่อ mygeojson.json และฉันต้องการเพิ่มเป็นเลเยอร์ใน OpenLayers 3 ด้านบนของเลเยอร์ openstreetmap จนถึงตอนนี้ฉันสามารถแสดงโลก openstreetmap รวมถึงการซูมเป็นต้น แต่ด้วยเหตุผลบางอย่างที่ฉันไม่สามารถรับ mygeojson.json ได้ geojson มีรูปหลายเหลี่ยมและมีลักษณะดังนี้: { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, "features": [ { "type": "Feature", "properties": { "DN": 2 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.559093915055664, 52.545214330050563 …

3
การตั้งค่าการเปิดเผย 3 เลเยอร์ของ OpenLayers
ฉันพยายามอัปเกรดแผนที่ Openlayers 2.12 เป็น Openlayers 3 เพื่อใช้ประโยชน์จากเอฟเฟกต์การเปลี่ยนแปลงที่ยอดเยี่ยมในเลเยอร์โปร่งใส (Something OL2 และ Leaflet ไม่สามารถดึงดูดความสนใจได้) สิ่งนี้และฉันไม่ต้องการล้าหลังการอัพเกรดเว็บไซต์ของฉันเมื่อ OL3 เปิดตัวอย่างเป็นทางการ ในเว็บไซต์ปัจจุบันของฉัน (OL2.12) ฉันใช้ช่องทำเครื่องหมายในเมนู HTML อย่างง่ายเพื่อสลับการแสดงเลเยอร์ ฉันผลักแต่ละเลเยอร์ไปยังอาร์เรย์ (ฉันหวังว่าฉันคิดถูก OL3 ตอนนี้สร้างอาเรย์โดยอัตโนมัติสำหรับเลเยอร์ที่เรียกว่า 'เลเยอร์') และแต่ละช่องทำเครื่องหมายเรียกใช้ฟังก์ชันนี้ (ช่องทำเครื่องหมายจะได้รับค่าที่เป็นตัวแทนของหมายเลขอาเรย์ของเลเยอร์ ): function layerswitch(evt){ layers[evt.value].setVisibility(evt.checked); } ใน OL3 ไม่สามารถใช้งานได้อีกต่อไปและฉันไม่สามารถหาตัวอย่างหรือเอกสารประกอบที่ให้รายละเอียดวิธีตั้งค่าเลเยอร์การมองเห็นได้

3
วิธีรับชื่อเลเยอร์ทั้งหมดในร้านค้าใน GeoServer โดยใช้ OpenLayers
ฉันมีข้อกำหนดที่เข้มงวดเพื่อเรียกชื่อเลเยอร์ทั้งหมดในที่จัดเก็บ GeoServer โดยใช้ OpenLayers ฉันได้อ่านบทความนี้แล้ว แต่ไม่ตอบคำถามของฉัน ฉันได้ผ่าน REST API ของ GeoServer ซึ่งจะเหมาะถ้าฉันใช้ภาษาอื่นเช่น C #, Java หรือ PHP แต่ฉันต้องการทำสิ่งนี้ทั้งหมดใน JavaScript UPDATE: จากสิ่งที่ฉันเห็นในWFS GetCapabilitiesเอกสารฉันสามารถดึงชื่อของเลเยอร์ทั้งหมดได้โดยส่งคำร้องขอ WFS GetCapabilities โดยใช้ตัวกรอง แต่ฉันไม่แน่ใจว่าเป็นไปได้หรือไม่ที่จะรวมตัวกรองไว้ในGetCapabilitiesคำขอ ฉันไม่มีความคิดใด ๆ ว่าตัวกรองดังกล่าวจะมีลักษณะอย่างไร คำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันสามารถไปเกี่ยวกับการบรรลุเป้าหมายนี้จะได้รับการชื่นชม แนวทางอื่นใดก็จะได้รับการชื่นชม UPDATE: ฉันเชื่อว่าฉันพบวิธีแก้ปัญหาที่นี่ ; "คำขอ WC GetCapabilities สามารถกรองเพื่อส่งคืนเลเยอร์ที่สอดคล้องกับเนมสเปซเฉพาะโดยทำตามนี้เพิ่มรหัสต่อไปนี้ในคำขอของคุณ: namespace = <namespace>" ฉันหวังว่านี่จะช่วยคนอื่นได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.