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

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

7
ฉันจะพิมพ์ Openlayers ด้วยเลเยอร์ OSM และ Geoserver WMS ได้อย่างไร
ฉันมีแผนที่ฉันต้องการพิมพ์เมื่อผู้ใช้เปิดเลเยอร์ เลเยอร์คือ geoserver wms และเลเยอร์พื้นฐานคือ OSM ฉันรู้ว่า geoserver มีโมดูลการพิมพ์ (ซึ่งติดตั้งและทำงานอยู่เพราะฉันได้รับคำตอบจาก geoserver / pdf / info.json? var = printCapabilities สิ่งที่ฉันไม่เข้าใจคือฉันใช้มันเพื่อพิมพ์แผนที่ปัจจุบันด้วยเลเยอร์ที่มองเห็นได้ ฉันดูที่ตัวอย่าง GeoExt (mapfish) แต่มันไม่ได้ช่วยให้ฉันเข้าใจ อัปเดต 1: ฉันสร้าง URL ต่อไปนี้ด้วยรหัสแล้ว: http://77.235.53.170/geoserver/pdf/print.pdf?spec={%22units%22:%22degrees%22,%22srs%22:%22EPSG:4326%22,%22layout%22:%22A4%22,%22dpi%22:%22300%22,%22mapTitle%22:%22This%20is%20the%20map%20title%22,%22comment%22:%22This%20is%20the%20map%20comment%22,%22resourcesUrl%22:%20%22http://77.235.53.170/img%22,%22layers%22:[{%22baseURL%22:%22http://77.235.53.170/geoserver/Lehavim/wms%22,%22opacity%22:1,%22singleTile%22:true,%22type%22:%22WMS%22,%22layers%22:[%22%D7%A7%D7%95%20%D7%9E%D7%99%D7%9D%22],%22format%22:%22image/jpeg%22,%22styles%22:[%22%22]}],%22pages%22:[{%22center%22:[3875254.1134954,3680894.557955],%22scale%22:32000,%22rotation%22:0}]} และฉันได้รับไฟล์ PDF ว่างเปล่า (มี แต่ชื่อเท่านั้น) ... มีอะไรผิดปกติหรือเปล่า

1
วิธีที่เป็นไปได้ในการแสดงแผนที่ออฟไลน์ภายในแอพมือถือไฮบริด
ฉันต้องการพัฒนาแอพพลิเคชั่นมือถือไฮบริดเพื่อให้ทำงานบนทั้งอุปกรณ์ Android และ iPhone ที่ฉันต้องการแสดงข้อมูลแผนที่ของตัวเอง ฉันมีไฟล์ SHP พร้อมข้อมูลที่ฉันต้องการ ฉันมี Geoserver และ PostGIS สำหรับการโหลดและให้บริการข้อมูลแผนที่ออนไลน์ จนถึงทุกอย่างก็โอเค ปัญหาของฉันคือฉันยังไม่เข้าใจคำแนะนำที่ถูกต้องสำหรับการแสดงข้อมูลแผนที่แบบออฟไลน์ แม้ว่าฉันได้อ่านคำตอบมากมายที่นี่ในเว็บไซต์นี้ดูเหมือนว่าไม่มีคำตอบใด ๆ (ตามที่ฉันเข้าใจปัญหาของฉัน) เป้าหมายคือเพื่อแสดงจุดพักบนแผนที่ ออฟไลน์ จุดพักระหว่างพักบางแห่งไม่มีที่อยู่เพียงแค่ Lon / Lat ฉันต้องการที่จะครอบคลุมข้อกำหนดเหล่านี้: วิธีการนำเสนอข้อมูลแผนที่และเนื้อหาออฟไลน์ไปยังอุปกรณ์ผู้ใช้ วิธีเสนอตัวเลือกการกำหนดเส้นทางผู้ใช้เพื่อนำทางเขาไปยังปลายทางจากตำแหน่งปัจจุบัน วิธีเพิ่มข้อมูลเนื้อหาจาก WordPress CMS ภายในแอพ (ผ่าน JSON? GeoJSON? GeoRSS?) ได้รับการค้นหาและมองหาบริการแบบเรียงต่อกันจำนวนมากและวิธีการมากมายเพื่อให้บรรลุความต้องการ แต่ยังคงหาวิธีการรวมที่ถูกต้อง สำหรับการพัฒนาแอพที่ฉันใช้ PhoneGap XDK, Eclipse ADT และสำหรับการแสดงแผนที่บนอุปกรณ์พกพาฉันใช้ OpenLayers mobile มองไปข้างหน้าคำแนะนำหรือคำแนะนำของคุณ ขอขอบคุณล่วงหน้าด้วยความเคารพ

2
ฉันจะยกเลิกการเลือกสถานที่ใน Openlayers ได้อย่างไร?
ฉันสามารถระบุคุณสมบัติที่เลือกบนแผนที่ของฉันโดยใช้บรรทัดต่อไปนี้: vector_layer.selectedFeatures ฉันต้องการยกเลิกการเลือกคุณสมบัตินี้โดยใช้ฟังก์ชั่นแบบสแตนด์อโลน (ไม่ใช่ตัวจัดการเหตุการณ์) ฉันลองใช้ฟังก์ชั่นunselect()แล้วunselectAll()ไม่สำเร็จและไม่พบตัวอย่างของวิธีการนี้ ฉันทราบว่าการคลิกที่วัตถุที่เลือกสามารถนำไปunselectใช้ได้ ในกรณีนี้ฉันต้องการโซลูชันแบบเป็นโปรแกรม

2
การออกแบบที่ดีที่สุดสำหรับต้นแบบ Open Source Python / PostGIS
ฉันกำลังเขียนเว็บแอปพลิเคชั่นที่เน้นข้อมูลที่ส่งผ่าน apache คำถามของฉันเกี่ยวกับวิธีจัดการการประมวลผลที่ดีที่สุดเนื่องจากมีหลายตัวเลือก ฉันมี OpenLayers / JQuery / Javascript, PostGIS / Postgresql (พร้อม pgsql), python / psycopg2, php ฐานข้อมูลมีแถวประมาณ 3 ล้านแถวและต้นแบบปัจจุบันทำงานดังนี้: ผู้ใช้คลิกที่จุดบนหน้าต่าง OpenLayers พิกัดถูกส่งเป็นการร้องขอ AJAX ไปยังฟังก์ชัน python บนเซิร์ฟเวอร์ ขณะนี้ใบสมัครของฉันไม่มีสัญชาติ psycopg2 ของ Python ใช้เพื่อเรียกโพรซีเดอร์ที่เก็บไว้ pgsql และชุดค่า WKT ที่ยอดเยี่ยม (และฟิลด์ข้อมูล) จะถูกส่งกลับไปยังโมดูลหลาม ฟิลด์ข้อมูลใช้เพื่อจัดหมวดหมู่เรคคอร์ด WKT ในไพ ธ อนดังนี้: ค่า WKT ทั้งหมดถูกจัดหมวดหมู่เป็นหนึ่งใน 5 กลุ่ม ประมาณ …

3
วิธีการวาดใหม่ / รีเฟรชแผนที่บนผืนผ้าใบปรับขนาดได้อย่างไร
ฉันได้สร้างเว็บเพจที่มีปุ่มเพื่อตั้งค่าแผนที่เต็มหน้าจอและกลับสู่รูปแบบปกติแผนที่ปัญหาไม่ได้ตั้งเป็นเต็มหน้าจอจนกว่าฉันจะเปลี่ยนขนาดหน้าต่างผลลัพธ์วิธีเอาชนะสิ่งนี้ คำแนะนำและความช่วยเหลือใด ๆ ที่มีความนิยม นี่คือตัวอย่างการทำงาน: การสาธิต

1
ความแตกต่างในการใช้ OpenLayers และ Mapbox คืออะไร?
เฮ้พวกฉันพบกระเบื้องสีนี้เพื่อพัฒนาแอปพลิเคชั่น WebGIS โดยใช้ MapBox ฉันอยากรู้ว่ามันดีกว่า OpenLayers อย่างไรและถ้าฉันต้องพัฒนาซึ่งจะเป็นทางเลือกที่ดีกว่าสำหรับฉันเพราะฉันจะพัฒนาสถาปัตยกรรม GIS ที่สมบูรณ์

5
การใช้เลเยอร์ฐานของการฉายสองแบบที่แตกต่างกัน (Spherical Mercator และ WGS84) ใน OpenLayers
ฉันจะเพิ่ม baselayer ด้วยการฉายสองแบบที่แตกต่างกันได้อย่างไร ฉันได้เพิ่มผู้ซ้อนทับด้วยการฉายภาพที่แตกต่าง (EPSG: 4326) แต่ฉันต้องเพิ่มเลเยอร์ฐานพร้อมการฉายภาพที่หลากหลาย Google Maps เลเยอร์เวกเตอร์ของฉันพร้อมการฉาย EPSG: 4326 ฉันเห็นทุกอย่างเรียบร้อยด้วย Google Maps แต่เมื่อฉันเปลี่ยน base layer เป็น EPSG: 4326 layer ทุกอย่างเป็นสีขาว window.onload = function init(){ var lon = 84; var lat = 28; var zoom = 8; var url = "http://10.6.7.6/geoserver/wms"; var mapControls = [ new OpenLayers.Control.Navigation(), new …

3
วิธีที่ดีที่สุดในการสร้างภาพเรดาร์ข้อมูลใน openlayers
ฉันมีโครงการที่ใช้ OpenLayers ซึ่งแสดงข้อมูลเรดาร์บนแผนที่ ข้อมูลเรดาร์เองนั้นเป็นเพียงรูปหลายเหลี่ยมแต่ละอันเต็มไปด้วยหนึ่งใน 6 สีที่เป็นไปได้ เป้าหมายคือการเคลื่อนไหวเรดาร์บนแผนที่ แต่ละไฟล์มีข้อมูลเรดาร์ตามเวลาที่กำหนดและไฟล์จะถูกคั่นด้วยประมาณ 5 นาทีดังนั้นวิธีการปัจจุบันของฉันคือการวนลูปผ่านไฟล์ทั้งหมดและโหลดทีละไฟล์เป็นเลเยอร์แยกใหม่ เมื่อแต่ละเลเยอร์ถูกสร้างขึ้นมันจะมีการตั้งค่าการมองเห็นเป็นเท็จและเพิ่มเข้าไปในแผนที่ จากนั้นฉันทำให้เคลื่อนไหวเลเยอร์โดยใช้ตัวจับเวลาซึ่งเปิดการมองเห็นของเลเยอร์หนึ่งและปิดการมองเห็นของเลเยอร์ก่อนหน้า ปัจจุบันเลเยอร์เป็นเลเยอร์เวกเตอร์ทั้งหมดและข้อมูลถูกโหลดจากไฟล์ KML แม้ว่าไฟล์ข้อมูลจะมีรูปแบบที่ค่อนข้างดีสำหรับโครงการนี้ ปัญหาของวิธีนี้คือเมื่อฉันได้รับช่วงเวลาที่ค่อนข้างใหญ่ (ประมาณ 3 ชั่วโมงหรือมากกว่านั้น) ของข้อมูล (เท่ากับประมาณ 36 เลเยอร์) ปริมาณการใช้หน่วยความจำจะสูงมาก (ประมาณ 250mb) ผลิตภัณฑ์ขั้นสุดท้ายควรจะสามารถจัดการข้อมูลได้นานถึง 18 ชั่วโมงในหนึ่งลูปซึ่งขึ้นอยู่กับจำนวนข้างต้นจะต้องใช้หน่วยความจำมากกว่า 1GB สำหรับภาพเคลื่อนไหวและอาจทำให้เบราว์เซอร์ล่มหรืออย่างน้อยก็ทำให้มันช้ามาก ฉันพยายามทำสิ่งเดียวกันโดยใช้เลเยอร์ WMS สำหรับแต่ละเลเยอร์ แต่การวาดใหม่ช้าเกินไป (ภาพเคลื่อนไหวเปลี่ยนเลเยอร์ทุก ๆ 100 มิลลิวินาที) และการใช้หน่วยความจำก็ไม่ดีไปกว่าเวอร์ชั่นเวคเตอร์ ฉันได้พยายามค้นหาตัวอย่างบางส่วนของวิธีการทำสิ่งนี้ แต่จนถึงตอนนี้ฉันก็ว่างเปล่า ใครบ้างที่มีข้อเสนอแนะเกี่ยวกับวิธีการทำเช่นนี้? ฉันจะนำความคิดใด ๆ ที่คุณมีอยู่ ณ จุดนี้เนื่องจากฉันติดอยู่กับเรื่องนี้มาหลายสัปดาห์แล้วโดยไม่มีคำตอบ

1
วิธีการจัดรูปแบบคุณสมบัติที่สร้างโดยตัวควบคุม DrawFeature
ฉันติดตามบทเรียนนี้แล้ว: http://workshop.pgrouting.org/chapters/geoext_client.html#select-the-start-and-final-destination มันมีการควบคุม Openlayers.Control.DrawFeatures ที่กำหนดไว้ในตัวอย่างรหัสต่อไปนี้ นอกจากนี้คุณยังสามารถมองเห็นเส้นที่ความคิดเห็นของผู้เขียน"ถ้าเราต้องการที่จะใช้รูปแบบพิเศษไปยังจุดเริ่มต้นที่เราควรจะทำอย่างไรที่นี่" ปัญหาคือ: ฉันไม่รู้วิธีใช้สไตล์ในการตั้งค่านี้และไม่พบตัวอย่างใด ๆ โดยใช้การควบคุม DrawFeatures ด้วยวิธีนี้ ฉันจะให้จุดเริ่มต้นใช้สไตล์ที่แตกต่างจากจุดสิ้นสุดโดยใช้ตัวควบคุม DrawFeatures นี้ได้อย่างไร DrawPoints = OpenLayers.Class(OpenLayers.Control.DrawFeature, { // this control is active by default autoActivate: true, initialize: function(layer, options) { // only points can be drawn var handler = OpenLayers.Handler.Point; OpenLayers.Control.DrawFeature.prototype.initialize.apply( this, [layer, handler, options] ); }, drawFeature: …

2
มีวิธีการวาดเส้นตรงบนแผนที่ซึ่งแสดงถึงเส้นตรงบนพื้นผิวโลกหรือไม่?
ฉันพยายามเข้าใจเพิ่มเติมเกี่ยวกับการคาดการณ์ ในตัวอย่างนี้ทำไมต้องคำนวณความโค้งของโลก (วงกลมใหญ่) หากแผนที่ได้ฉายออกมาแล้ว มีวิธีการวาดเส้นตรงอย่างเห็นได้ชัดบนแผนที่นั้นซึ่งแสดงถึงเส้นตรงบนพื้นผิวโลกหรือไม่? ทำไมหรือทำไมไม่?

2
วิธีเพิ่มเลเยอร์ใน SelectFeature โดยไม่สูญเสียการเลือกที่มีอยู่
ฉันใช้OpenLayers.Control.SelectFeatureเพื่อเลือกหลายเลเยอร์ อย่างไรก็ตามเมื่อฉันเพิ่มเลเยอร์โดยใช้ setLayer () การเลือกเลเยอร์อื่น ๆ ของฉันจะหายไป ใครรู้วิธีแก้ปัญหานี้? ฉันต้องการคงการเลือกที่มีอยู่ของฉันไว้ในเลเยอร์อื่น ๆ เมื่อฉันเพิ่มเลเยอร์ในตัวควบคุม SelectFeature นี่คือตัวอย่าง: ตัวอย่างของฉัน ปรับปรุง: ฉันรู้ว่านี่เป็นส่วนหนึ่งของ API แต่ฉันกำลังมองหางาน /** * APIMethod: setLayer * Attach a new layer to the control, overriding any existing layers. * * Parameters: * layers - Array of {<OpenLayers.Layer.Vector>} or a single * {<OpenLayers.Layer.Vector>} */ setLayer: …

2
วิธีการเปลี่ยนลักษณะที่ปรากฏของ Feature.Vector ที่แสดงอยู่แล้ว?
ฉันได้สร้างพวง Feature.Vectors จากวัตถุจุดและกำหนดสไตล์ ตอนนี้ฉันต้องการเปลี่ยนลักษณะที่ปรากฏของหนึ่งในคุณสมบัติแบบเรียลไทม์ เช่นเปลี่ยนจากสีแดงเป็นสีน้ำเงิน (ฉันไม่ได้โฉบเหนือคุณลักษณะนี้) ฉันได้ลองเปลี่ยนสไตล์แล้วทำรีเฟรช () ที่เลเยอร์หรือวาดใหม่ () ฯลฯ และไม่มีอะไรเกิดขึ้นหรือคุณสมบัติหายไป ข้อเสนอแนะใด ๆ ขอบคุณ

3
OpenLayers พร้อมการซ้อนทับสตรีทวิว
ฉันกำลังพยายามเพิ่มฟังก์ชั่น StreetView ให้กับแอปพลิเคชันเว็บของ OpenLayers ของฉันและต้องการเพิ่มการซ้อนทับที่แสดงความพร้อมใช้งานของ StreetView ลงในแผนที่ ฉันได้เห็นตัวอย่างของการทำที่นี่สำเร็จแต่ฉันไม่สามารถรับรหัสเพื่อทำงานในโซลูชันของฉันเอง โดยเฉพาะ: var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true}); layer.mapObject.addOverlay(new GStreetviewOverlay()); ผลลัพธ์ในข้อผิดพลาด: layer.mapObject is null มีใครที่คิดบ้างไหมว่าฉันทำอะไรผิดและถ้าเป็นเช่นนั้นฉันจะแก้ไขได้อย่างไร

2
จะรักษาโทโพโลยีในขณะที่แก้ไขรูปหลายเหลี่ยมใน OpenLayers ได้อย่างไร
ฉันกำลังเผชิญกับปัญหานี้: ฉันมีแผนที่ chloropleth ตามชุดของรูปหลายเหลี่ยมที่มีข้อมูลบางส่วน ใช้ WFS-T (postgis, geoserver, openlayers) ฉันสามารถแก้ไขรูปทรงเรขาคณิตของรูปหลายเหลี่ยม ใช้งานได้ดี รูปหลายเหลี่ยมของฉันดูเหมือนชายแดนรัฐ พวกเขาแชร์จุดยอดขอบ เมื่อฉันแก้ไขรูปทรงเรขาคณิตของรูปหลายเหลี่ยม (เช่นย้ายจุดยอดโดยใช้ modifiedFeature) ฉันต้องส่งผลกระทบต่อรูปทรงเรขาคณิตของรูปหลายเหลี่ยมที่อยู่ใกล้เคียง ไม่ควรมีรูหรือทับซ้อนกัน เป็นไปได้ที่จะทำหรือไม่ ขอบคุณ

4
การปฏิเสธเลเยอร์ฐานใน OpenLayers
ฉันมีแผนที่แบบเวกเตอร์ / โทโป / ภาพสำหรับบางแห่งในอเมริกาเหนือซึ่งเผยแพร่เป็นบริการ ArcGIS Server REST แผนที่เหล่านี้ (A) ใช้การประมาณการ EPSG: 26912 ตอนนี้ฉันต้องการใช้สิ่งเหล่านี้เป็นแผนที่พื้นฐานสำหรับแอป OpenLayers บนเว็บของฉัน นอกจากนี้ฉันยังต้องการที่จะใช้แหล่งแผนที่ฐานอื่น ๆ (B) เช่น OpenStreetmap, Google Maps, ESRI เป็นต้นเนื่องจากแผนที่ส่วนใหญ่อยู่ในรูปแบบ EPSG: 900913 ซึ่งเป็นแผนที่ทรงกลม Mercator ที่รู้ของฉันถ้าฉันเพิ่งเพิ่มสิ่งเหล่านี้ เลเยอร์แผนที่พื้นฐานลงในองค์ประกอบแผนที่ OpenLayers กลุ่ม A และกลุ่ม B ไม่ซ้อนทับอย่างถูกต้องซึ่งหมายความว่าพวกเขาจะแสดงเป็นแผนที่แยกต่างหาก ฉันรู้ว่านี่เป็นสิ่งที่เกี่ยวข้องกับการฉายภาพและอาจต้องใช้รหัสกับ proj4js อย่างไรก็ตามในฐานะมือใหม่ฉันไม่รู้จริงๆว่าจะเริ่มต้นด้วยอะไร โดยพื้นฐานแล้วฉันต้องการใส่ OSM / Google maps เป็นแผนที่พื้นฐานสำหรับทั้งโลกในระดับ 1 จากนั้นใส่แผนที่พื้นฐาน EPSG: 26912 …

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