কীভাবে ওপেনলায়ারসে দুটি বহুভুজ একীভূত করবেন?


11

আমার দুটি বহুভুজ রয়েছে have

polygon1 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing1]))
polygon2 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing2]))

আমি কীভাবে ওপেনলায়ার্স ব্যবহার করে দুটি বহুভুজকে একের সাথে একীভূত করতে পারি?

http://i.stack.imgur.com/SrqYF.png


1
আপনার প্রশ্নটি ব্যাখ্যা করুন, আমি কী বলতে চাইছি তা নিশ্চিত নই।
drnextgis

উত্তর:


14

ক্লায়েন্ট পক্ষের জ্যামিতি হেরফের জন্য আপনি জেএসটিএস টপোলজি স্যুট ব্যবহার করতে পারেন । এখানে আপনার সমস্যা সমাধানের আমার সামান্য উদাহরণ: ইউনিয়নের উদাহরণ । সোর্স কোড:

var reader = new jsts.io.WKTReader();  

var a = reader.read('POLYGON((10 10, 100 10, 100 100, 10 100, 10 10))');
var b = reader.read('POLYGON((50 50, 200 50, 200 200, 50 200, 50 50))');

var union = a.union(b);

var parser = new jsts.io.OpenLayersParser();

union = parser.write(union);

var map = new OpenLayers.Map('map', {
  maxExtent: new OpenLayers.Bounds(0, 0, 300, 300),
  maxResolution: 100,
  units: 'm',
 controls: [new OpenLayers.Control.MousePosition(), new OpenLayers.Control.Navigation()]
});

var layer = new OpenLayers.Layer.Vector('test', {isBaseLayer: true});
map.addLayer(layer);

var unionOutput = new OpenLayers.Feature.Vector(union, null, { fillColor: 'green', fillOpacity: 1});

layer.addFeatures([unionOutput ]);
map.zoomToMaxExtent();

4
(+1) সর্বদা এখানে নতুন কিছু শিখুন। জেএসটিএস দেখতে খুব সুবিধাজনক।
ক্যাপ্ট্রাড্রাগন

সুন্দর হ্যান্ডেল বেহাল উদাহরণ। কুদোস :)
রব কুইন্সি

1

আপনার প্রশ্নটি থেকে আমি যা বুঝতে পারি তা হ'ল আপনি দুটি বহুভুজ বৈশিষ্ট্যগুলি মার্জ করতে চান। আমার মনে হয় আপনি পোস্টটিআইএস জ্যামিতি প্রসেসিং ফাংশনগুলিতে থাকা এসT_ ইউনিয়ন ফিউচারের সাথে সার্ভার সাইডে এটি করতে হবে। তারপরে আপনি ফলাফলটি পেতে এবং এটি আপনার অ্যাপ্লিকেশনটিতে যুক্ত করতে পারেন। তুমি যা চাও. একত্রীকরণ...

পোস্টগিসে আপনি প্রচুর বহুভুজকে এই জাতীয় ইউনিয়ন করতে পারেন:

SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),
    ST_GeomFromText('POINT(1 2)') ) );

সবার আগে আপনাকে কিছু জিপ সংগ্রহের জন্য ওপেনলায়ারদের অনুরোধ করতে হবে।

এবং জিওডাঙ্গাও-তে আপনি জিওডাঙ্গাও টপোলজিকাল পদ্ধতিতে সহজেই এটি করতে পারেন ..

polygon.union( secondpolygon )


GEOSGeometry.union(other)
Returns a GEOSGeometry representing all the points in this geometry and the other.

আমি আশা করি এটা আপনাকে সাহায্য করবে...


0

প্রতিটি বহুভুজ একটি বৈশিষ্ট্য হিসাবে বিবেচনা করা হয়। যখনই আপনি ভেক্টর স্তরটিতে বহুভুজ যুক্ত করেন, সেই বৈশিষ্ট্যটি সেখানে সঞ্চিত থাকে। এবং আপনি স্তর অবজেক্ট থেকে স্বাধীন বৈশিষ্ট্য পেতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.