أكثر

اعرض مدى الخريطة كمضلع على خريطة أخرى - OpenLayers 3


كيف يمكن إضافة مضلع يمثل في جميع الأوقات مدى map1 على map2 كما في الصفحة التالية؟

http://www.alexisathlani.com/paris.html


الوظيفة التي تنشئ المضلع

function addExtent () {// إزالة النطاق المضلع السابقSource.clear () ؛ // احصل على امتداد الخريطة وقم بتخزينه في مصفوفة من الإحداثيات var rangeMap = map.getView (). calculateExtent (map.getSize ())؛ var bottomLeft = ol.proj.transform (ol.extent.getBottomLeft (rangeMap)، 'EPSG: 3857'، 'EPSG: 4326') ؛ var topRight = ol.proj.transform (ol.extent.getTopRight (rangeMap)، 'EPSG: 3857'، 'EPSG: 4326') ؛ var bottomRight = ol.proj.transform (ol.extent.getBottomRight (rangeMap)، 'EPSG: 3857'، 'EPSG: 4326') ؛ var topLeft = ol.proj.transform (ol.extent.getTopLeft (rangeMap)، 'EPSG: 3857'، 'EPSG: 4326') ؛ var ring = [[bottomLeft [0]، bottomLeft [1]]، [topLeft [0]، topLeft [1]]، [topRight [0]، topRight [1]]، [bottomRight [0]، bottomRight [1] ]] ؛ // أنشئ مضلعًا بناءً على مجموعة الإحداثيات var polygon = new ol.geom.Polygon ([ring]) ؛ polygon.transform ('EPSG: 4326'، 'EPSG: 3857') ؛ // أضف المضلع إلى الطبقة وأسلوبها ميزة var = new ol.Feature (polygon) ؛ rangeSource.addFeature (ميزة) ؛ feature.setStyle (مدى النمط) ؛ }

نمط المضلع / متغيرات الطبقة / المشاهدات والخرائط

var rangeStyle = new ol.style.Style ({stroke: new ol.style.Stroke ({color: 'white'، width: 1.5})، ملء: new ol.style.Fill ({color: 'rgba (255، 255 ، 255 ، 0.5) '})}) ؛ var rangeSource = new ol.source.Vector ({}) ، var rangeLayer = new ol.layer.Vector ({projection: 'EPSG: 3857'، source: rangeSource،}) ؛ var basemap = new ol.layer.Tile ({source: new ol.source.XYZ ({url: 'http: // {1-4} .basemaps.cartocdn.com / dark_all / {z} / {x} / {y} .png ">ShareImprove هذه الإجابةأجاب 5 ديسمبر 2015 الساعة 3:15Alexis_AAlexis_A6765 شارات فضية20 شارة برونزية


شاهد الفيديو: GeoServer. OpenLayers. Apache (شهر اكتوبر 2021).