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

ใช้แท็กนี้เมื่อคุณใช้เวอร์ชัน 2.x ของชุดเครื่องมือไคลเอนต์ OpenLayers JavaScript

2
ใช้การวัดเนื้อที่สำหรับวงกลมรัศมี?
ฉันกำลังพัฒนาเว็บไซต์ทำแผนที่ OpenLayers การวัดสามารถทำได้โดยใช้เครื่องมือเส้นและเครื่องมือพื้นที่ ทั้งสองคนนี้มีการตั้งค่าปัจจุบันในการคำนวณการวัดเนื้อที่ตามที่ระบุไว้ในOpenLayers API ฉันใช้การวัดทางมาตรวิทยามากกว่าการวัดแบบระนาบขณะที่ผู้ใช้ทำการทดสอบผู้คนได้ถามถึงการวัดระยะทางที่พวกเขารู้ (เช่นการขับขี่ระหว่างเมือง) คุณลักษณะใหม่ของไซต์นี้สำหรับผู้ใช้ที่จะสามารถวาดวงกลมบนแผนที่ของรัศมีที่กำหนด OpenLayers อนุญาตเฉพาะสำหรับการวาดวงกลมโดยใช้ระยะทางระนาบดังนั้นเมื่อผู้ใช้วัดวงกลมด้วยเครื่องมือการวัดทางธรณีวิทยาค่าที่ไม่ตรงกัน ในภาพด้านล่างรัศมีระนาบวงกลมคือ 10km แต่การวัดเส้น geodesic สำหรับเส้นผ่านศูนย์กลางคือ 12km ชัดเจนว่านี่จะทำให้ผู้ใช้ (และตัวฉันเอง) สงสัยว่าสิ่งใดถูกต้อง เมื่อดูคำตอบนี้ดูเหมือนว่าระบบ GIS ของเดสก์ท็อปส่วนใหญ่จะ“ เพิกเฉย” ปัญหานี้และส่งคืนการวัดระยะทางและระยะทาง ดังนั้นวิธีปฏิบัติที่ดีที่สุดในแง่ของส่วนต่อประสานกับผู้ใช้และความแม่นยำในการจัดการกับการวัดแบบระนาบและมาตรวิทยา ปรับปรุง ฉันพบตัวอย่างของ Google ซึ่งแสดงให้เห็นถึงปัญหาของรัศมีและการฉายภาพ Mercator: http://maps.forum.nu/gm_sensitive_circle2.html รหัส JavaScript เพื่อวาดวงกลมมีดังนี้: var lat1 = (PI/180)* center.lat(); // radians var lng1 = (PI/180)* center.lng(); // radians for (var …

6
ฉันจะรับพิกัดของการคลิกที่คุณสมบัติ / เลเยอร์เวกเตอร์ใน OpenLayers ได้อย่างไร
ฉันต้องได้รับพิกัดคลิกเมื่อผู้ใช้คลิกบนฟีเจอร์เวกเตอร์บนแผนที่ OpenLayers SelectControl ให้คุณสมบัติที่คลิกและไม่ใช่พิกัดของการคลิกเท่านั้น จะได้ค่าพิกัดของการคลิกบนเวกเตอร์หรือไม่? ฉันต้องแสดง AnchoredBubble ณ จุดที่ผู้ใช้คลิก

4
กำลังมองหาทางเลือกโอเพ่นซอร์สสำหรับเครื่องมือ StreetView ของ Google หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 เดือนที่ผ่านมา คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังมองหาเพื่อสร้างแอปพลิเคชันจาวาสคริปต์แบบโอเพนซอร์สโดยใช้ Leaflet หรือ OpenLayers มีวิธีใดบ้างที่จะใช้มุมมองแบบพาโนรามา (คล้ายกับ StreetView ของ Google) กับสิ่งเหล่านี้หรือ API แบบเปิดใด ๆ มุมมองแบบพาโนรามาของฉันจะกำหนดเองจากภาพถ่ายส่วนตัวดังนั้นฉันไม่จำเป็นต้องหยิบภาพพาโนรามาจากบริการที่มีอยู่ ฉันเข้าใจว่าเป็นไปได้ที่จะรวม Google StreetView เข้ากับแอปที่ไม่ใช่ของ Google แต่มีอะไรอีกบ้างไหมที่จะให้ฟังก์ชั่นที่คล้ายกันโดยไม่ต้องใช้ Google API

1
การจัดการกับคุณสมบัติที่ทับซ้อนกันใน OpenLayers
หากผู้ใช้สร้างคุณลักษณะรูปหลายเหลี่ยมที่ทับซ้อนกันอย่างสมบูรณ์เช่นนี้ ... …ถ้าอย่างนั้นคุณก็ไม่สามารถเลือกคุณลักษณะภายในได้เช่นตัวที่ซ้อนทับกัน ฉันกำลังใช้งานง่าย ๆSelectFeatureเช่นนี้: var select = new OpenLayers.Control.SelectFeature( [this.annotationLayer, this.controlPointsLayer], { hover: true, renderIntent: "temporary" } ); this.map.addControl(select); select.activate(); แต่เห็นได้ชัดว่าฉันทำได้แค่เลือกคุณลักษณะด้านนอกเท่านั้น วิธีการทั่วไปในการจัดการกับสิ่งนี้คืออะไร? ฉันจะทำให้ผู้ใช้สามารถเลือกคุณสมบัติภายในได้อย่างไร วิธีแก้ปัญหาที่ง่ายที่สุดอาจจะทำให้คุณสมบัติด้านนอกสามารถเลือกได้เฉพาะภายในพื้นที่ที่เหลือเมื่อลบคุณลักษณะภายใน - แต่ฉันไม่รู้ว่าจะทำอย่างไร

2
ทางเลือกของ OpenLayers ที่สนับสนุนคุณสมบัติฝั่งไคลเอ็นต์มากขึ้น [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังพิจารณาสถาปัตยกรรมที่แตกต่างสำหรับระบบที่จะใช้การเรนเดอร์ฝั่งไคลเอ็นต์สำหรับคุณลักษณะจุดและต้องปราศจากปลั๊กอิน ฉันใช้แอพพลิเคชั่นนี้พัฒนาขึ้นเพื่อตอบคำถามนี้เพื่อทดสอบแล็ปท็อปของฉัน (ซึ่งค่อนข้างมีความสามารถ - quad-core 2.6 ghz cpu, หน่วยความจำ 4 gb, ไม่อยู่ภายใต้ภาระอื่น ๆ , Firefox 8) ด้วยคะแนนที่แตกต่างกัน เห็นได้ชัดว่ามันล่าช้าที่ 500 และเริ่มดิ้นรนกว่า 1,000 ฟีเจอร์ที่สร้างแบบสุ่มดูเหมือนจะไม่มีตัวจัดการเหตุการณ์ใด ๆ และใช้สัญลักษณ์เดียวกันทั้งหมด ฉันคาดว่าจะแสดงคุณลักษณะได้สูงสุด 1,000 รายการพร้อมด้วยสัญลักษณ์ที่แตกต่างกันสูงสุด 10 รายการทั้งหมดนี้มีตัวจัดการการคลิกและวางเมาส์และบนแพลตฟอร์มที่มีความสามารถน้อยกว่า ฉันหวังว่าจะได้ประสิทธิภาพฝั่งไคลเอ็นต์ที่ดีขึ้นโดยเฉพาะหลังจากเห็นตัวอย่าง GIS Cloud นี้ - ฉันรู้ว่ามันใช้งานได้แตกต่างกัน (ผ้าใบ HTML5 กับ SVG) แต่ความแตกต่างของประสิทธิภาพนั้นโดดเด่นจริงๆ คำถามสำคัญของฉัน (ถ้าคุณจะใจดี) คือ: …

4
OpenLayers: วิธีกำหนดเลเยอร์ WFS ด้วยไฟล์ SLD
ฉันกำลังทดลองกับบริการสร้างแผนที่เว็บอย่างง่ายบนสแต็ก PostGIS / GeoServer / OpenLayers บนเซิร์ฟเวอร์ Win 2008 ฉันซ้อนทับชั้นเวกเตอร์จาก PostGIS โดยใช้: var Index1v = new OpenLayers.Layer.Vector("Index1 v", { strategies: [new OpenLayers.Strategy.BBOX()], protocol: new OpenLayers.Protocol.WFS({ version: "1.1.0", url: "http://localhost:1979/geoserver/wfs", featureType: "bern_poly_s100", featureNS: "http://www.ispm.ch", srsName: "EPSG:900913" }) }); เลเยอร์แสดงอย่างถูกต้อง แต่ในสไตล์ธรรมดาค่าเริ่มต้น [?] จาก GeoServer ฉันได้สร้างไฟล์สไตล์ SLD ด้วย uDig และดูเหมือนว่าจะถูกต้องเนื่องจากบริการ WMS กำลังใช้งานอยู่โดยไม่มีปัญหาใด ๆ …

3
เปลี่ยนศูนย์มุมมอง OpenLayers 3
ฉันใช้ OpenLayers 3 เพื่อโต้ตอบกับบางแผนที่ ฉันก่อนประกาศแผนที่ของฉัน: map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: [0, 0], zoom: 2 }) }); ฉันเป็นเหตุการณ์ที่ก่อให้เกิดการกระทำเพื่อเปลี่ยนมุมมองแผนที่ของฉัน วิธีนี้ (พิกัดของฉันอยู่ในEPSG:4326รูปแบบ): function CenterMap(lat, long) { console.log("Lat: " + lat + " Long: " + long); map.setView(new ol.View({ center: …

2
OpenLayers 2.12 และ http การตรวจสอบความถูกต้องพื้นฐานของ woes
ฉันพยายามใช้ OpenLayers 2.12 เพื่อแสดงเลเยอร์ WMS จากเซิร์ฟเวอร์ที่เปิดใช้งานการตรวจสอบสิทธิ์พื้นฐาน HTTP ฉันพยายามจัดการการรับรองความถูกต้องโดยใส่ชื่อผู้ใช้และรหัสผ่านในพารามิเตอร์ URL ในรหัส JavaScript ของฉัน ตัวอย่างการสร้างเลเยอร์: myLayer = new OpenLayers.Layer.WMS('background', 'https://username:password@ws.nls.fi/rasteriaineistot/image?', { layers: 'background', bbox: '-380188,6249943,1347312,8226943' }, { displayInLayerSwitcher: true, isBaseLayer: false, projection: 'EPSG:3067', visibility: true }); แน่นอนว่าสิ่งนี้ไม่ปลอดภัยเนื่องจากข้อมูลรับรองจะถูกเก็บไว้ในรหัส JavaScript และไม่สามารถใช้งานได้ในเบราว์เซอร์ทั้งหมด Internet Explorer 8 ให้ข้อผิดพลาดด้านความปลอดภัยชี้ไปที่ OpenLayers.js และปฏิเสธที่จะแสดงแผนที่เลย Firefox 13 แสดงกล่องโต้ตอบการตรวจสอบความถูกต้องซึ่งฉันสามารถยกเลิกได้ (แผนที่จะแสดงอย่างถูกต้องหลังจากนั้น) ใน Chrome 23 …

4
จะวางซ้อน lat / lon points บนเลเยอร์ของ Google ใน OpenLayers 2 ได้อย่างไร
ฉันกำลังเพิ่มจุดเวกเตอร์เป็น lat / lon ด้านบนของเลเยอร์ Google ใน OpenLayers จุดกำลังเคลื่อนที่เมื่อฉันเลื่อนแผนที่ สิ่งนี้จะไม่เกิดขึ้นหากฉันแทนที่เลเยอร์ Google ด้วยเลเยอร์ใน WGS84 ฉันจะแก้ไขสิ่งนี้ได้อย่างไร map = new OpenLayers.Map('map'); map.addControl(new OpenLayers.Control.LayerSwitcher()); var gmap = new OpenLayers.Layer.Google( "Google Streets", {numZoomLevels: 20} ); var pointLayer = new OpenLayers.Layer.Vector("Point Layer"); map.addLayers([gmap,pointLayer]); map.setCenter(new OpenLayers.LonLat(16.373056, 48.208333), 5); var point = new OpenLayers.Geometry.Point(16.373056, 48.208333); var pointFeature = …

2
การเปลี่ยนผู้ใช้ baselayers เป็นผู้ใช้ซูมเข้าสู่แผนที่ใน OpenLayers?
ฉันมีแผนที่ซึ่งซ้อนทับข้อมูลแผนที่ถนนเปิดบนภาพสำหรับเพนซิลเวเนีย ในฐานะที่เป็นเบสเบสไปสู่ถนน (และในที่สุดเลเยอร์อื่น ๆ ) ฉันมีสอง baselayers - Blue Marble NG และ USGS EROS ภาพความยาว 1 ฟุต ฉันต้องการที่จะรวมสองเลเยอร์เหล่านี้ไว้ในวัตถุแผนที่ฐานเดียวซึ่งจะเปลี่ยนโดยอัตโนมัติเมื่อผู้ใช้ซูมเข้าเนื่องจากไม่มีเหตุผลที่จะดูภาพขนาด 1 ฟุตสำหรับทั้งรัฐหรือภาพหินอ่อนสีฟ้าเมื่อคุณซูมเข้า โดยหลักการแล้วฉันต้องการทำสิ่งนี้ในฝั่งไคลเอ็นต์ขณะที่ฉันดึงภาพจากสองไซต์ที่ต่างกัน

9
บรรทัดวันที่สากลล้อมรอบ
เมื่อใช้ OpenLayers ฉันเพิ่มเลเยอร์ WFS (บน GeoServer) ด้วยตัวกรองที่ส่งคืนฟีเจอร์ทั้งหมด (สีดำ) ที่ตัดกันรูปหลายเหลี่ยมของฉัน (สีเหลือง) ที่วางอยู่เหนือประเทศละตินอเมริกาบางแห่งภายในวันที่กำหนด อย่างไรก็ตามคุณสมบัติที่ข้ามในแนวนอนบนแผนที่ไม่ได้ตัดกับรูปหลายเหลี่ยมของฉัน คุณลักษณะนี้อยู่ที่ไหนสักแห่งในมหาสมุทรแปซิฟิกระหว่างฮาวายและฟิจิและไม่ใช่ในละตินอเมริกา ปัญหาคือแทนที่จะข้ามเส้นวันที่ระหว่างประเทศกำลังแสดงผลบนแผนที่โดยล้อมรอบทั้งโลก คุณสมบัติ problamatic ถูกกำหนด: POLYGON ((- 179.700417 14.202717, -178.687422 13.992875,179.024138 8.24716, -179.98241 8.035567, -179.700417 14.202717) ฉันมีคุณสมบัติของเส้นวันที่ที่เป็นปัญหาเช่นนี้ แต่มีการ จำกัด ให้แคบลงเป็นตัวอย่างนี้ ฉันไม่สามารถเพิกเฉยได้ในแอปพลิเคชันของฉันเพราะฉันมีหลายอย่าง ฉันได้ลองใช้ "wrapDateLine: true" ในชั้นฐานและชั้น WFS ด้วยผลลัพธ์เดียวกัน ไม่แน่ใจว่านี่จะเป็นปัญหา GeoServer หรือปัญหา OpenLayers ไม่มีใครรู้วิธีการแก้ปัญหาบรรทัดวันที่ระหว่างประเทศของฉัน?

5
บทช่วยสอนสำหรับ OpenLayers? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันต้องสร้างแผนที่เว็บที่แสดงเลเยอร์แรสเตอร์จำนวนมาก ฉันใช้ mapserver และต้องการใช้ Openlayers แต่ฉันไม่สามารถหาบทแนะนำที่ดีเกี่ยวกับเรื่องนี้ได้ ฉันเห็นคำถามสองสามข้อ ( 1และ2 ) ที่บอกว่าไม่มีเอกสารที่ดี สิ่งต่าง ๆ มีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้? ฉันต้องการค้นหาบทเรียนการสอนจากพื้นฐานถึงสิ่งที่ค่อนข้างซับซ้อนพร้อมคำอธิบายที่ดีเกี่ยวกับโค้ดและรูปภาพ / ตัวอย่างของผลลัพธ์ ตอนนี้ฉันจัดการเพื่อทำแผนที่เว็บที่ง่ายที่สุดด้วยไฟล์. map ของฉันแต่ฉันต้องกำหนดเอง (เพิ่มตำนานเลเยอร์กลุ่มเพิ่มตัวควบคุมเพิ่มเติมฝัง ฯลฯ )

2
การเปิดใช้งาน CORS ใน OpenLayers
เป็นไปได้ไหมที่จะเปิดใช้งานการแบ่งปันทรัพยากรข้ามแหล่ง (CORS) ใน OpenLayers? ถ้าเป็นเช่นนั้นได้อย่างไร ฉันมีแผนที่เว็บใน OpenLayers และฉันใช้ผ้าใบ HTML เพื่อแสดงผลเป็นภาพ PNG สคริปต์ของฉันใช้งานได้ดี แต่เนื่องจากนโยบายต้นกำเนิดเดียวกันของเบราว์เซอร์ฉันสามารถแปลงผืนผ้าใบของฉันเป็นรูปภาพได้หากไทล์แผนที่ทั้งหมดที่ฉันวาดไปนั้นมาจากโฮสต์เดียวกัน (เช่นsub.domain.com) เพื่อเพิ่มความเร็วในการโหลดแผนที่ของฉันฉันดึงไทล์จากอาร์เรย์ของโดเมนย่อย: a.domain.com, b.domain.comและอื่น ๆ ซึ่งช่วยเพิ่มประสิทธิภาพอย่างมากโดยทำงานกับขีด จำกัด ของเบราว์เซอร์สี่การเชื่อมต่อพร้อมกันต่อโฮสต์ แต่ป้องกันไม่ให้ฉัน ไทล์มาจากหลายโฮสต์ ฉันพยายามใช้CORSเพื่อแก้ไขปัญหานี้ ฉันได้ตั้งค่าAccess-Control-Allow-Originหัวข้อการตอบสนองที่เหมาะสมสำหรับชุดไพ่ที่ฉันให้บริการด้วย PHP แต่นี่ไม่มีผลกระทบ ฉันสงสัยว่านี่เป็นเพราะไม่มีOriginส่วนหัวในคำขอ (ดังแสดงในตัวอย่างในหน้า Wiki) ดูเหมือนว่าจำเป็นต้องมีการกำหนดค่า OpenLayers บางอย่าง แต่อะไร? มีคนอื่นที่ทำสิ่งนี้ได้สำเร็จหรือไม่

4
เป็นความคิดที่ดีหรือไม่ที่จะย้ายไปยัง OpenLayers 3 ในขณะนี้ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันสงสัยว่า OpenLayers 3 เชื่อถือได้เพียงพอที่จะเริ่มโยกย้ายแอปพลิเคชันไปได้หรือไม่ ความแตกต่างระหว่างรุ่น 2 และ 3 นั้นสำคัญเกินกว่าที่รหัสเดิมจะใช้งานได้หรือไม่ การปรับปรุงที่สำคัญของ OpenLayers 3 ได้รับการทดสอบอย่างเพียงพอเช่น 3D หรือไม่?

6
บริการแผนที่ฟรีสำหรับเว็บแอปพลิเคชันส่วนตัว
พื้นหลัง กำลังมองหาเพื่อแสดงแผนที่ (สำหรับใช้ภายในเท่านั้น) บนเว็บเพจ แอปพลิเคชันจะต้องสามารถเพิ่มเลเยอร์ที่กำหนดเอง (โดยไม่ส่งข้อมูลไปยังโฮสต์บริการแผนที่): เขตเทศบาล (กำหนดโดย shapefiles) โซนที่กำหนดเอง (กำหนดโดยรูปหลายเหลี่ยมอาจเป็นในแง่ของเขตเทศบาล) ตำแหน่งไซต์ (กำหนดโดยละติจูด / ลองจิจูด) ข้อมูลเมืองเพิ่มเติม (กำหนดโดยไฟล์รูปร่าง) เนื่องจากเป็นกิจการเอกชนจึงกำจัดบริการแผนที่จำนวนมากรวมถึง: Google Maps, Bing, Yahoo! แผนที่ MapQuest และบริการชำระเงินตามการใช้งานอื่น ๆ อัปเดต # 1 บางทีMapQuestเป็นไปได้ อัปเดต # 2 ข้อกำหนดที่ฉันลืมพูดถึง: มีข้อมูลเพิ่มเติม (เมือง, เมือง, หมู่บ้าน) ไม่ได้เป็นส่วนหนึ่งของ OpenStreetMap ต้องรวมเมืองเหล่านี้โดยไม่ต้องให้ข้อมูลกับผู้ให้บริการแผนที่ มีเลเยอร์ต่างๆ (เช่นตำแหน่งพนักงาน) ที่จะต้องแสดงโดยไม่ต้องแจ้งผู้ให้บริการแผนที่ว่าจะหาข้อมูลได้จากที่ใด (เช่นข้อมูลจะอยู่ด้านหลังไฟร์วอลล์) การพัฒนาในปัจจุบัน ปัจจุบันฉันไม่สามารถหาเซิร์ฟเวอร์ที่ตรงกับความต้องการของฉันดังนั้นฉันได้ปฏิบัติตามคำแนะนำในเว็บไซต์ต่าง ๆ เพื่อติดตั้งเว็บเซิร์ฟเวอร์ Mapnik: …

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