أكثر

تحريك geom.Polygon.circular في OpenLayers 3

تحريك geom.Polygon.circular في OpenLayers 3


أنا أستخدم Angular و OpenLayers لإنشاء تطبيق ويب.

لدي خريطة تعمل وقمت بإضافة Vector (رمز) والذي يعمل أيضًا. لقد صنعت دائرة بنفس مركز الرمز الذي يعمل أيضًا.

الآن عندما ينقر المستخدم على زر أريد أن ينتقل هذا الرمز والدائرة إلى موقع جديد يعمل مع الرمز ولكن ليس الدائرة باستخدام:

$ scale.iconFeature.getGeometry (). setCoordinates (ol.proj.transform ([long، lat]، 'EPSG: 4326'، 'EPSG: 3857'))؛ $ scale.circleFeature.getGeometry (). setCoordinates (ol.proj.transform ([long، lat]، 'EPSG: 4326'، 'EPSG: 3857'))؛

يتم تنفيذ iconFeature باستخدام:

var iconFeatures = [] ؛ $ scale.iconGeometry = new ol.geom.Point (ol.proj.transform ([long، lat]، "EPSG: 4326"، "EPSG: 3857"))؛ $ scale.iconFeature = new ol.Feature ({geometry: $ scale.iconGeometry،})؛ iconFeatures.push ($ domain.iconFeature) ؛ var vectorSource = new ol.source.Vector ({features: iconFeatures}) ؛ var iconStyle = new ol.style.Style ({image: new ol.style.Icon (/ **type {olx.style.IconOptions} * / ({anchor: [16، 32]، anchorXUnits: 'pixels'، anchorYUnits: "pixels"، opacity: 1، src: 'img / position_marker.png ">

ol.geom.Polygon.fromCircleهي طريقة ثابتة وتقوم بإرجاع ملفol.geom.Polygonالهندسة ، لذلك وفقًا لـ setCoordinates function api ، لا يمكنك تعيين إحداثيات ببساطة ، فأنت بحاجة إلى تحديد جميع إحداثيات المضلع.

هذا يعني أنك إذا كنت تريد تحريك دائرتك الزائفة ، فأنت بحاجة إلى إعادة إنشائها للاتصالol.geom.Polygon.fromCircleكل مرة.

لماذا لا تستخدم هندسة الدائرة ol.geom.Circle بدلاً من ذلك؟ مع ذلك يمكنك فقط تعيين مركز دائرتك.


شاهد الفيديو: Cut Polygon from another Polygon layer Arabic QGIS