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

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

1
เอกสารประกอบ OpenLayers API กับเอกสารสำหรับนักพัฒนา
เว็บไซต์ OpenLayers มีเอกสารอ้างอิงสองชุด: API เอกสาร: http://dev.openlayers.org/apidocs/ เอกสารสำหรับผู้พัฒนา: http://dev.openlayers.org/docs/ สำหรับคลาสส่วนใหญ่เอกสาร API มีชุดย่อยขนาดเล็กของสิ่งที่อยู่ในเอกสารสำหรับนักพัฒนา ฉันพบว่าฉันมักจะไม่สามารถทำได้มากนักโดยใช้เพียงคุณสมบัติที่อธิบายไว้ในเอกสาร API ดังนั้นฉันจึงใช้เอกสารสำหรับนักพัฒนา (และฉันอ่านแหล่งที่มาและตัวอย่าง) อะไรคือความแตกต่างอย่างเป็นทางการระหว่างเอกสารทั้งสองชุดนี้? เอกสาร API อธิบายถึงอินเทอร์เฟซที่คาดว่าจะเสถียรหรือไม่? ฉันจะเสี่ยงต่อการแตกหักในอนาคตหรือไม่หากฉันใช้คุณสมบัติที่อธิบายไว้ในเอกสารสำหรับนักพัฒนาเท่านั้น

1
การแบ่งกลุ่มของ OpenLayers แบ่งเป็นชั้น ๆ
ฉันมีแผนที่ OpenLayers พร้อมการจัดกลุ่มจุด แต่ฉันต้องการใช้ข้อมูลที่ละเอียดยิ่งขึ้นกับข้อมูลที่แสดงในแผนที่ โดยเฉพาะฉันต้องการแบ่งชั้นกลุ่มตามแอตทริบิวต์ในคุณสมบัติ (เราจะเรียกมันว่า 'หมวดหมู่') ดังนั้นสมมติว่าฉันมีห้าหมวดหมู่: อย่างมีประสิทธิภาพฉันต้องจัดกลุ่มจุดเฉพาะกับจุดอื่น ๆ จากหมวดหมู่เดียวกัน ฉันคิดว่านี่สามารถทำได้ด้วยห้าชั้นที่แตกต่างกัน แต่สิ่งนี้กลายเป็นเรื่องยุ่งยากอย่างรวดเร็วเนื่องจากจำนวนหมวดหมู่มีขนาดใหญ่ (ฉันมี 50+ ในขณะนี้) มีใครเห็นอะไรเช่นนี้กับ OpenLayers?

7
ฉันควรใช้ CMS สำหรับแอปพลิเคชันการจับคู่เว็บหรือไม่
สำหรับแอพการทำแผนที่เว็บของฉันฉันใช้ GeoServer เป็นเซิร์ฟเวอร์ PostGIS เป็นฐานข้อมูลเชิงพื้นที่และ OpenLayers ทางฝั่งไคลเอ็นต์ (รวมถึงไลบรารี JS อื่น ๆ ) แผนที่ประกอบด้วยแผนที่ฐานและเลเยอร์เวกเตอร์ หนึ่งในเลเยอร์เวกเตอร์เหล่านี้คือเลเยอร์ "สถาบันสาธารณะ" สำหรับแต่ละประเภทของสถาบัน (กระทรวง, ศาล ... ) มีบุคคล(ฉันเรียกพวกเขาว่า "ผู้มีส่วนร่วม") ที่รับผิดชอบในการแก้ไขข้อมูล (โทร, แฟกซ์, ที่ตั้งบนแผนที่ ... ) เกี่ยวกับสถาบันเหล่านี้ ผู้มีส่วนร่วมได้รับการจัดการโดยผู้ดูแลระบบที่ระบุสิทธิ์ของแต่ละคน การแก้ไขบางอย่างของผู้มีส่วนร่วมจะต้องได้รับการตรวจสอบโดยผู้ดูแลระบบ (ตัวอย่างเช่นการลบสถาบัน) ... ดังนั้นฉันคิดว่าการใช้ CMS อาจช่วยได้ คุณคิดอย่างไร? มีบางอย่างเช่น CMS Drupal ที่ OpenLayers บูรณาการที่มี แต่ดูเหมือนว่าโครงการยังอยู่ในการพัฒนาเชื่อมโยงไปยังหน้าโครงการ ทางเลือกหรือประสบการณ์ในการแบ่งปัน?

2
Openlayers - ลดการเลือกหรือสไตล์บนเลเยอร์วาดใหม่
เมื่อฉันซูมหรือย้ายแผนที่เลเยอร์ของฉันจะถูกวาดใหม่ นี่คือสิ่งที่ฉันต้องการเพราะฉันมีคุณสมบัติมากมายที่จะโหลดพร้อมกัน นี่คือรหัส: wfs = new OpenLayers.Layer.Vector("WFS", { strategies: [new OpenLayers.Strategy.BBOX({ resFactor: 1, ratio:1 })], protocol: new OpenLayers.Protocol.WFS({ maxFeatures:1000, url: myUrl, featureType: myFeatureType, featureNS: myFeaturedNS, version: "1.1.0" }), filter: setFilter(year, variant) }); รหัสต่อไปนี้คือรหัสการเลือกของฉัน ทั้งหมดนี้ใช้งานได้ตามที่ฉันไม่ต้องการ อย่างไรก็ตามเมื่อเลเยอร์ถูกวาดใหม่การเลือกจะหายไปและ onFeatureUnselect จะไม่เริ่มทำงาน (ซึ่งควรจะเป็น) ฉันไม่แน่ใจว่าตัวเลือกจะสูญหายจริง ๆ หรือมีการตั้งค่าลักษณะใหม่ selectCtrl = new OpenLayers.Control.SelectFeature( wfs, { clickout: true, toggle: …

4
วิธีการแสดงตำแหน่งเมาส์เป็นคำแนะนำเครื่องมือใน OpenLayers-2
ฉันต้องการให้พิกัดแผนที่เป็นเม้าส์เอฟเฟกต์ใน OpenLayers ฉันใช้รหัสต่อไปนี้ อย่างไรก็ตามมันแสดงพิกัดพิกเซล: map.events.register("mousemove", map, function(e) { var position = e.map.x + e.xy.y; OpenLayers.Util.getElement("tooltip").innerHTML = position });

3
วงกลมจริงปรากฏในระบบพิกัดใด
ฉันได้รับการพัฒนาใน Google Maps สำหรับชั่วขณะและกำลังเปลี่ยนเป็น OpenLayers แต่ติดอยู่ที่จุดหนึ่ง: ฉันกำลังวาดเวกเตอร์ที่ส่วนใหญ่เป็นวงกลม แต่ยังเกี่ยวข้องกับเรขาคณิตที่กำหนดเองดังนั้นฉันจึงไม่สามารถใช้ createRegularPolygon ฉันกำลังสร้างอาร์เรย์ของคะแนนและส่งไปยังวัตถุ OpenLayers.Layer.Vector วิธีนี้ใช้งานได้ดี แต่ 'วงกลม' ที่ได้นั้นเป็นเพียงรอบที่อยู่ใกล้เส้นศูนย์สูตรไม่ใช่ที่ละติจูดที่สูงกว่า พวกมันถูกบีบอัดในปริมาณที่เท่ากันกับแผนที่ฐานมีละติจูดที่สูงกว่าซึ่งดูเหมือนจะสมเหตุสมผล ถ้าฉันใช้ Google เป็นเลเยอร์พื้นฐานแล้วพวกเขาจะมีรูปร่างที่ถูกต้องในทุกละติจูด แต่ฉันกำลังสร้างโซลูชันมือถือออฟไลน์เพื่อที่จะไม่ทำเช่นนั้น ฉันจะใช้อะไรกับเลเยอร์ฐาน (หรือพารามิเตอร์ที่จะตั้งค่า) เพื่อให้เรขาคณิตของฉันยังคงอยู่ในทุกละติจูดโดยไม่ต้องใช้ Google หรือแผนที่ออนไลน์

2
กำลังมองหาตัวเลือกการโฮสต์แผนที่หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังพยายามหาวิธีเริ่มต้นที่ดีที่สุดในโครงการการทำแผนที่เว็บและสงสัยว่าฉันควรจะโฮสต์แผนที่ของฉันไว้ที่ไหน ในแง่ของทักษะของฉันฉันค่อนข้างดีในการทำแผนที่เดสก์ท็อปและการทำแผนที่และฉันมีทักษะปานกลาง PHP, mySQL, HTML และ CSS - แต่ฉันต้องการสร้างเว็บไซต์แผนที่เชิงโต้ตอบที่ยอดเยี่ยมจริงๆที่จะ (ในฝันของฉัน เท่านั้น! อาจมีชั้นฐานบางส่วนจากนั้นซ้อนทับเขตการปกครองและตารางส่วนของฉันเองและอาจมีจุดตัวอย่างนับแสนจุด แต่ละจุดเหล่านี้จะมีข้อมูลแนบและเมื่อคลิกจะแสดงข้อมูลในบานหน้าต่างจากนั้นให้ความสามารถสำหรับผู้ใช้ที่ลงทะเบียนเพื่อแสดงความคิดเห็นและหารือเกี่ยวกับมัน ฉันต้องการรับความคิดเห็น (นิ้วหัวแม่มือขึ้น / ลง) บางอย่างสำหรับความคิดเห็นของผู้ใช้แต่ละคน บางทีฉันอาจมองในแง่ดีเกินไป แต่นี่คือสิ่งที่ฉันต้องการในท้ายที่สุด การอ่านของฉันบอกฉันว่าฉันต้องการสแต็คที่มีบางอย่างเช่น postGIS, MapServer และ OpenLayers แต่ฉันใช้ inmotion สำหรับการพัฒนาเว็บและการเรียนรู้ในปัจจุบันของฉันซึ่งฉันชอบมากดังนั้นแทนที่จะเสียเวลาหาวิธีติดตั้งแพ็คเกจเหล่านี้ทั้งหมดที่นั่น ถ้าฉันสามารถทำได้) จะดีกว่าไหมถ้าไปกับชุดอย่าง mapserverpro.com ซึ่งมีการตั้งค่าสิ่งนี้ไว้แล้วและเชี่ยวชาญในการโฮสต์ GIS หรือไม่? ราคาแพ็กเกจโฮสติ้งของพวกเขาไม่ใช่ปัญหาและฉันแค่ต้องการชี้ไปในทิศทางที่ถูกต้องเพื่อเริ่มต้น ฉันเดาว่าคำถามสั้น ๆ ของฉันคือ: ทุกคนที่นี่มีความเห็นเกี่ยวกับ mapserverpro.com ว่าเป็นอย่างไร แม้แต่ mapserving.com? …

6
ใช้ ArcGIS Online Base Maps โดยไม่มีซอฟต์แวร์ Esri หรือไม่
ตั้งแต่ปลายเดือนมกราคม 2554: "บริการแผนที่ ArcGIS ออนไลน์นั้นไม่มีค่าใช้จ่ายโดยไม่คำนึงถึงการใช้งาน" - http://www.esri.com/software/arcgis/arcgisonline/standard-maps.html อย่างไรก็ตามการใช้ ArcGIS Web Mapping API อาจต้องสมัครสมาชิก - http://www.esri.com/software/arcgis/arcgisonline/common-questions.html แผนผังทั้งหมดที่มีอยู่จาก ESRI สามารถเข้าถึงได้โดยบริการ REST ซึ่งไม่ต้องการ API มีเลเยอร์ชนิดใหม่ใน OpenLayersที่สามารถเข้าถึงบริการเหล่านี้ได้ ข้อกำหนดในการให้บริการของรัฐ: โดยเฉพาะอย่างยิ่งคุณอาจไม่ (หรือพยายาม) (a) เข้าถึงบริการหรือทรัพยากรที่ไม่ได้ให้บริการแก่คุณผ่านเว็บเบราว์เซอร์มาตรฐานหรือผลิตภัณฑ์ Esri; อัพเดท - TOS จริง ๆ แล้วอาจอ้างถึงเว็บไซต์ esri.com และ "บริการ" มากกว่าบริการแผนที่ด้วยตนเอง ดังนั้นจึงเป็นเรื่องถูกกฎหมายและอยู่ภายใต้ข้อกำหนดในการให้บริการเพื่อใช้เลเยอร์เหล่านี้ในแอปพลิเคชันเว็บใด ๆเช่น OpenLayers หรือผ่าน API การแมปของ Google หรือ Bing เนื่องจากทั้งหมดนี้ใช้ในเว็บเบราว์เซอร์มาตรฐานหรือไม่

2
ใน OpenLayers ให้ขยายขอบเขตของการวางซ้อนทั้งหมด
ใน Openlayers ฉันสามารถซูมไปที่กล่อง bounding ของเลเยอร์ทั้งหมดเช่นนี้ map.zoomToExtent(); ฉันยังสามารถซูมไปที่กล่อง bounding ของชั้นเดียว: map.zoomToExtent(layer_name.getDataExtent()); มีวิธีที่ง่ายในการซูมถึงทุกชั้นยกเว้นชั้นฐานหรือไม่? กล่าวอีกนัยหนึ่งคือแสดงขอบเขตของการซ้อนทับทั้งหมด

1
ใช้สไตล์แผนที่ Google แบบกำหนดเองใน OpenLayers2 หรือไม่
เมื่อเร็ว ๆ นี้ฉันพบบทความที่น่าสนใจนี้ซึ่งแสดงถึงศักยภาพในการเพิ่มสไตล์ที่กำหนดเองลงใน Google แผนที่ ตัวอย่างบางส่วนของแผนที่สไตล์สามารถมองเห็นได้ที่นี่และคุณสามารถออกแบบของคุณเองตั้งแต่เริ่มต้นที่นี่ ฉันต้องการใช้ชุดรูปแบบ 'greyscale' กับแผนที่พื้นฐานของ OpenLayers ของฉัน: คำอธิบายลักษณะตามตัวอย่างของ Google จะมีลักษณะดังนี้: var styles = { 'Greyscale': [ { featureType: 'all', rules: [ {saturation: -100}, {gamma: 0.50} ] } ] } แผนที่ Google ของฉันใน OpenLayers ในปัจจุบันดูเหมือนว่า: var gmap = new OpenLayers.Layer.Google("Google Streets", { 'numZoomLevels': 20, 'sphericalMercator': true} ); …

3
การใช้แผนที่ OpenLayers กับ SSL
ฉันใช้แผนที่ OpenLayers โดยใช้ JavaScript ที่โฮสต์: <script src="http://openlayers.org/api/2.13.1/OpenLayers.js"></script> แต่ลูกค้าของฉันติดตั้ง SSL และเมื่อฉันพยายามเรียกใช้หน้าแผนที่ของฉันมันแสดง: (2)[blocked] The page at https://domain.com/rwd/ ran insecure content from http://openlayers.org/api/2.13.1/OpenLayers.js. ดังนั้นฉันจึงลอง https หนึ่งและปรากฎว่า openlayers ไม่มี https://openlayers.org/api/2.13.1/OpenLayers.js จากนั้นฉันดาวน์โหลด Openstreet js และโฮสต์ในไคลเอนต์เซิร์ฟเวอร์ แต่สไตล์และรูปภาพที่เกี่ยวข้องทั้งหมดจะหายไป แม้ว่ามันจะแสดงแผนที่โดยทั่วไปมีคำเตือนมากมายปรากฏขึ้นในคอนโซลและฉันเกรงว่าสิ่งนี้อาจถูกปฏิเสธได้ที่ play store หรือมากกว่านั้น ฉันกำลังพัฒนาแอพพลิเคชั่นไฮบริดที่ทำงานบนเซิร์ฟเวอร์เช่นกัน คำเตือนตอนนี้ : The page at https://domain.com/rwd/#/customer-plot/234 displayed insecure content from http://b.tile.openstreetmap.org/14/8743/5624.png. The page at …

3
จะเชื่อมต่อ OpenLayers กับข้อมูล PostGIS ได้อย่างไร
ฉันได้อ่านใน OpenLayers แล้ววิธีโหลด KML, GeoJSON ฯลฯ ไฟล์เวกเตอร์ใน OpenLayers แต่ฉันจะเชื่อมต่อกับข้อมูล PostGIS ได้อย่างไร มิฉะนั้นฉันควรอัพโหลดข้อมูลของฉันไปที่ PostGIS แทนที่จะวางข้อมูลของฉันโดยตรงโดยใช้ WebServices ฉันไม่มีอะไรเลยหรือ และฉันต้องการที่จะโหลดข้อมูลเวคเตอร์นี้เพื่อที่เราจะได้เห็นแอททริบิวต์โดยคลิกที่ฟีเจอร์ ฉันต้องการ PostGIS เพราะในอนาคตฉันต้องการเปิดใช้งานแบบสอบถาม ฉันคิดว่าเป็นไปได้โดยการรักษาฐานข้อมูลเช่น PostGIS แต่วิธีการใช้ OpenLayers? ฉันได้อ่านคู่มือผู้เริ่มต้นของ OpenLayers แล้ว แต่ไม่ได้มีการกล่าวถึง กรุณาช่วย!!

2
OpenLayers 3: วิธีรีเฟรชแผนที่หลังจากเปลี่ยนสไตล์ของฟีเจอร์?
ฉันมีแผนที่ OpenLayers 3.2.0 ซึ่งมีบางแหล่งเวกเตอร์ ( ol.source.Vector) และเลเยอร์เวกเตอร์ที่เกี่ยวข้อง ( ol.layer.Vector) เมื่อเพิ่มคุณสมบัติ ( ol.Feature) ลงในแหล่งที่มาของเวกเตอร์คุณสมบัติเหล่านั้นจะได้รับdataคุณสมบัติที่ตั้งค่าเป็นวัตถุจาวาสคริปต์ที่คุณสมบัติดังกล่าวแสดง TypeScript มีดังนี้ ... vectorSource.addFeature(new ol.Feature({ geometry: /* ... */, data: vectorData, })); เลเยอร์เวกเตอร์นั้นมีฟังก์ชั่นสไตล์ที่อ่านdataคุณสมบัติและดึงสไตล์ของมัน: vectorLayer = new ol.layer.Vector({ source: vectorSource, renderBuffer: /* ... */, style: function (feature: ol.Feature, resolution: any) { var data = </* TypeScript Type */>feature.get('data'); …

4
การแยก Linestrings บน dateline ด้วย OpenLayers
สองสามปีที่ผ่านมาฉันโพสต์บรรทัดวันที่สากลล้อมรอบและ @jdeolive แนะนำให้ฉันแยกคุณสมบัติที่ dateLine ดังนั้นฉันจึงพยายาม เมื่อฉันพยายามที่จะแยกการติดตามดาวเทียมของฉันกับsplitWithnullในวันเดือนปีที่ผมได้รับกลับมา ฉันรู้ว่าฉันแยกอย่างถูกต้องเพราะเมื่อฉันแยกสายกรีนวิชฉันจะได้รับผลลัพธ์ที่คาดหวัง มีใครรู้บ้างว่าฉันสามารถแยกLinestringอย่างเป็นโปรแกรมตามบรรทัดวันที่ด้วย OpenLayers ได้อย่างไร ฉันค้นหาโค้ดตัวอย่างถ้าคุณมี ฉันลองแล้วwrapDateLineแต่ดูเหมือนว่ามันจะไม่ทำงานบนเลเยอร์เวกเตอร์แม้ว่าเลเยอร์เวกเตอร์ของฉันจะเป็นแบบนี้: vectorLayer = new OpenLayers.Layer.Vector("GroundTracks", { renderers: ['Canvas', 'VML'], wrapDateLine: true}); // <-- shoud be wraping. นี่คือรหัสของฉัน: var features = []; var format = new OpenLayers.Format.WKT({ 'internalProjection': map.baseLayer.projection, 'externalProjection': prjGeographic }); var satTrack = format.read("LINESTRING (95.538611 13.286511, 94.730711 16.908947, …

5
เพิ่มเลเยอร์แผนที่ย่อยแบบกำหนดเองโดยใช้ QGIS?
ฉันกำลังพยายามแสดงแผนที่พื้นหลังต่อไปนี้ใน QGIS 2.0: http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/ $ {z} / $ {y} / $ {x} ในไคลเอนต์แผนที่เว็บที่กำหนดเองนี้ค่อนข้างง่าย: http://dev.openlayers.org/releases/OpenLayers-2.13.1/examples/xyz-esri.html ฉันพยายามใช้ "OpenLayers plugin" ใน QGIS แต่มีรายการแผนที่พื้นหลังที่กำหนดไว้ล่วงหน้าและฉันไม่สามารถเพิ่มเลเยอร์แผนที่แบบกำหนดเองของฉันเองได้ มีวิธีแก้ปัญหาง่าย ๆ (ไม่มีโปรแกรมใด ๆ ) ฉันจะแสดงเลเยอร์แผนที่แบบกำหนดเองใน QGIS ได้อย่างไร?

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