মানচিত্রের ব্যবহার করে সম্পূর্ণ স্বচ্ছ ফিল দিয়ে বহুভুজগুলি কীভাবে রঙ করবেন?


11

বহুভুজগুলি পূরণ করা কি সম্ভব যাতে তারা মানচিত্রের মধ্যে সম্পূর্ণ স্বচ্ছ হয়? আমি একটি কালো ব্যাকগ্রাউন্ড রাখতে চাই যা কিছুটা অস্বচ্ছ। এবং যেখানেই বহুভুজ রয়েছে সেখানে আমি এটি সম্পূর্ণরূপে পরিষ্কার না করে দেখতে চাই। আমি আমার পটভূমি নিম্নলিখিত উপায়ে সেট করেছি:

   IMAGECOLOR     0 0 0
   TRANSPARENT OFF

বহুভুজ পূরণের জন্য সাদা একটি শ্রেণি তৈরি করার চেষ্টা করেছি এবং TRANSPARENCY0 - 100 থেকে মানগুলি ব্যবহার করে অস্বচ্ছতার সাথে পরীক্ষা করেছি তবে এর ফলে পরিষ্কার বহুভুজ দেখা যায় না:

CLASS
      NAME "light"  
      EXPRESSION ([max_cost] == 2000)     
      STYLE       
        OUTLINECOLOR 255 255 255
        COLOR 255 255 255
        SIZE       1
        WIDTH      2.0        
      END
END 

এটি নিম্নলিখিত ধরণের চিত্রের ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

বহুভুজটির পরিবর্তে একটি সাদা ভরাট; আমি চাই যে এটি কোনও রঙ ছাড়াই পূর্ণ হোক। রঙটি এভাবে সংজ্ঞায়িত করতে অনলাইনে একটি পরামর্শ পেয়েছি:

COLOR -1 -1 -1

কিন্তু এটি কাজ করে না। ডকুমেন্টেশনের এই অংশে , নিম্নলিখিতটি বর্ণিত হয়েছে:

"প্যালেটটি = / পাথ / টু / প্যালেট.টেক্সট" সম্পূর্ণ প্যাথ সংজ্ঞা দিতে ব্যবহৃত হয় যেখানে প্যালেট রঙগুলি পাওয়া যায়। এই ফাইলে অবশ্যই আরজিবি ইমেজমোডগুলির জন্য আর, জি, বি ট্রিপল্ট, বা আর জি, বি, বি, আরজিবিএ ইমেজমোডগুলির জন্য একটি চতুর্ভুজগুলির 256 টি প্রবেশদ্বার থাকতে হবে। প্রত্যাশিত বিন্যাসটি হ'ল প্রতি লাইনে একটি ট্রিপলেট (বা চতুর্ভুজ), প্রতিটি মান কমা দ্বারা পৃথক করা, এবং প্রতিটি ট্রিপলেট / চতুর্ভুজ একক লাইনে। আপনি যদি প্যালেট দিয়ে স্বচ্ছতা ব্যবহার করতে চান তবে প্যালেট ফাইলে এই দুটি রঙ থাকা জরুরী: 0,0,0,0 এবং 255,255,255,255।

এটি পড়ার পরে, আমি এটি ব্যবহার করার চেষ্টাও করেছি COLOR 0 0 0 0তবে এটি একটি ত্রুটি ছুঁড়েছে:

অজানা শনাক্তকারী। পার্সিং ত্রুটি (0) :( লাইন 71)

আমি বুঝতে পারি না যে আমি কীভাবে একটি সংজ্ঞায়িত রঙের সাথে উল্লেখ করি PALETTE=/path/to/palette.txtতবে এটি এটি অর্জনের এক সম্ভাব্য উপায় বলে মনে হয়।


মাথাব্যথা এড়ানোর এক উপায় বহুভুজকে লাইনে রূপান্তর করতে পারে।
nadya

আমি কীভাবে বহুভুজটির কোনও ভরাট করতে পারি না?
djq

2
আমি বলতে চাইছি যে কোনও জিআইএস সফ্টওয়্যার ব্যবহার করে বহুভুজের রূপরেখাকে উপস্থাপন করে লাইন শেফফিল তৈরি করা এবং বহুভুজগুলির পরিবর্তে এই লাইনগুলি ম্যাপসভারে যুক্ত করুন। লাইনে মোটেও ফিল করা যায় না।
নাদিয়া

রেখাগুলি প্রদর্শিত হবে কি না তাতে আমার আপত্তি নেই; আমি কেবল একটি পরিষ্কার বহুভুক্ত ফিল চাই।
djq

1
বহুভুজগুলিকে লাইনে রূপান্তর করার দরকার নেই - এমএপি ফাইলে স্তরটির জন্য আপনি '
টিওয়াইপি

উত্তর:


4

ম্যাপসভারটি সম্প্রতি মুখোশ স্তরগুলির ধারণাটি চালু করেছে (একটি মুখোশটি ফটোশপে একটি মাস্কের মতো আচরণ করে যা স্তরটি প্রয়োগ করা হয় তার সাথে মিশ্রণ করে)।

জন্য RFC বর্ণনা তারা কি এবং কিভাবে ব্যবহার করা যাবে। আপনার উত্তরটি পড়ে মনে হচ্ছে আপনি যে 'কীহোল' প্রভাবটি খুঁজছেন তা পেতে আপনি একটি মুখোশ স্তর ব্যবহার করতে পারেন।

আমি নিশ্চিত নই যে এই বৈশিষ্ট্যটি কয়েক সপ্তাহ আগে প্রকাশিত 6.২-এ তৈরি করেছিল কিনা।


4

সুতরাং, আপনি নীচের পটভূমি দেখতে আপনার স্বচ্ছ বহুভুজ দ্বারা কালো পটভূমি "অনুপ্রবেশ" করতে চান। আমি নিশ্চিত নই যে ম্যাপসার্ভার দিয়ে এটি সম্ভব, তবে আমি অন্য কৌশলটি বলতে পারি।

আপনি কোনও জিআইএস সফ্টওয়্যার ব্যবহার করে আপনার সমস্ত অঞ্চল জুড়ে এবং আরও প্রসারিত একটি খুব বড় বহুভুজ তৈরি করতে পারেন। তারপরে আপনি এই অঞ্চল বহুভুজ থেকে আপনার বহুভুজগুলি মুছতে পারেন এবং তারপরে এই হোলড বহুভুজটি আপনি মানচিত্রের উপর চাপিয়ে কালো পটভূমির পরিবর্তে কালো করতে পারেন। আপনার বহুভুজ সম্পর্কিত গর্তগুলি "স্বচ্ছ" হতে চলেছে।


1

আমার .map ফাইলটিতে এই লাইনগুলি ছিল এবং 100 এর চেয়ে কম স্বচ্ছতা কাজ করছে working

  LAYER 
    NAME         core_areas
    DATA         core_areas.shp
    STATUS       ON
    TYPE         POLYGON
    TRANSPARENCY 100
    SIZEUNITS pixels
    PROJECTION
       "init=epsg:32629"
    END # projection
    CLASS
      STYLE
        COLOR        20 150 90
        OUTLINECOLOR 7 56 41
        WIDTH        1
      END # STYLE
    NAME "Core areas"
    END # CLASS
  END # Layer

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


এটি কি সম্পূর্ণ স্বচ্ছ বহুভুজের ফলস্বরূপ? আমি TRANSPARENCY0 - 100 এর মানগুলির সাথে পরীক্ষার চেষ্টা করেছি এবং দেখে মনে হচ্ছে এটি কেবল অস্বচ্ছতা সামঞ্জস্য করবে। আমি বুঝতে পারি আমার প্রশ্নে এটি অভ্যন্তরীণভাবে পরিষ্কার ছিল না - আমি এটি সংশোধন করেছি।
ডিজেকিউ

সুতরাং, আপনি বহুভুজের কেবল রূপরেখা এবং সমস্ত কিছু স্বচ্ছের ভিতরে রাখতে চান, তাই না? আমি সম্ভবত ভুল বুঝেছি এবং সাধারণ স্বচ্ছতার পরামর্শ দিয়েছি।
nadya

দ্বিগুণ বিভ্রান্তির জন্য দুঃখিত; শুধু বহুভুজ পূরণ পরিষ্কার; লাইন কোন ব্যাপার না।
djq

1
@djq ট্রান্সপার্শনিকে 5.0 সংস্করণে চিত্রিত করা হয়েছে। লেয়ার ওপেসিটি হ'ল সঠিক সম্পত্তি।
ডেভিডএফ

1

নীচে একটি স্বচ্ছ মাস্ক স্তর প্রদর্শিত একটি নমুনা চিত্র রয়েছে। আপনি যদি মুখোশটি আরও বড় করে তোলেন তবে আপনার ব্যবহারকারীর বাইরের প্রান্তগুলি লক্ষ্য করবেন না। @ নাদিয়া যে পরামর্শ দিয়েছে তার অনুরূপ, আপনি এটি করতে পারেন:

  1. একটি বৃহত আয়তক্ষেত্রাকার বহুভুজ তৈরি করুন
  2. প্রতিটি "কাট-আউট" এর জন্য বহুভুজ তৈরি করুন
  3. বৃহত্তর থেকে ছোট বহুভুজগুলি বিয়োগ করুন (কিউজিআইএস-এর পার্থক্য সরঞ্জামটি এর জন্য দুর্দান্তভাবে কাজ করে)

স্বচ্ছ মাস্ক

এই মুহুর্তে আপনার একটি সমাপ্ত মুখোশ থাকবে। তবে, যদি আপনি কাট-আউট স্পেসগুলিতে লেবেল যুক্ত করতে চান, তবে আপনাকে মাস্কের পিছনে ছোট বহুভুজগুলি যুক্ত করতে হবে (ইউনিয়নের সরঞ্জাম ব্যবহার করে)। তারপরে, ম্যাপস্ভারে একটি এসএলডি ফাইলের সাহায্যে আপনি মাস্কটিকে স্বচ্ছ ধূসর হিসাবে স্টাইল করতে পারবেন এবং কাট আউটগুলিকে সম্পূর্ণ স্বচ্ছ হিসাবে স্টাইল করতে পারবেন এবং সেখানে লেবেলগুলি প্রয়োগ করতে পারেন। এখানে একটি নমুনা এসএলডি ফাইল রয়েছে (এটি জিওসভারের জন্য নির্মিত হয়েছিল):

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
  <NamedLayer>
    <Name>yards</Name>
    <UserStyle>
      <Name>yards</Name>
      <Title>Polygon Style</Title>
      <FeatureTypeStyle>
        <Name>name</Name>
        
        <Rule>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>TYPE</ogc:PropertyName>
              <ogc:Literal>outer</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#555555</CssParameter>
              <CssParameter name="fill-opacity">0.5</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke-width">0</CssParameter>
            </Stroke>
          </PolygonSymbolizer>  
        </Rule>
        
        <Rule>
          <ogc:Filter>
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>TYPE</ogc:PropertyName>
              <ogc:Literal>inner</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#555555</CssParameter>
              <CssParameter name="fill-opacity">0</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>
              <CssParameter name="stroke-opacity">0</CssParameter>
              <CssParameter name="stroke-width">0</CssParameter>
            </Stroke>
          </PolygonSymbolizer>  
        </Rule>
        
        <Rule>
          <MinScaleDenominator>10000</MinScaleDenominator>
          <TextSymbolizer>
            <Geometry>
              <ogc:Function name="centroid">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
              </ogc:Function>
            </Geometry>
            <Label>
              <ogc:PropertyName>SITE</ogc:PropertyName>
            </Label>
            <Font>
              <CssParameter name="font-family">Arial</CssParameter>
              <CssParameter name="font-size">11</CssParameter>
              <CssParameter name="font-style">normal</CssParameter>
              <CssParameter name="font-weight">bold</CssParameter>
            </Font>
            <LabelPlacement>
              <PointPlacement>
                <AnchorPoint>
                  <AnchorPointX>
                    <ogc:Literal>0.0</ogc:Literal>
                  </AnchorPointX>
                  <AnchorPointY>
                    <ogc:Literal>0.5</ogc:Literal>
                  </AnchorPointY>
                </AnchorPoint>
                <Rotation>
                  <ogc:Literal>0</ogc:Literal>
                </Rotation>
              </PointPlacement>
            </LabelPlacement>
            <Halo>
              <Radius>
                <ogc:Literal>1</ogc:Literal>
              </Radius>
              <Fill>
                <CssParameter name="fill">#FFFFFF</CssParameter>
              </Fill>
            </Halo>
            <VendorOption name="conflictResolution">true</VendorOption>
            <VendorOption name="goodnessOfFit">0</VendorOption>
          </TextSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

নোট করুন যে বহুভুজগুলির সঠিকভাবে কাজ করার জন্য "অভ্যন্তরীণ" বা "বহিরাগত" মানগুলির সাথে "TYPE" বৈশিষ্ট্য থাকা দরকার।


আপনার উত্তরের জন্য ধন্যবাদ - জিওসিভারের জন্য এসএলডি কি আদৌ সম্পর্কিত? আমি এর সাথে মানচিত্রের মধ্যে মিল খুঁজে পাই না।
djq

ম্যাপসভারটি এসএলডিও ব্যবহার করতে পারেন। এখানে একটি উদাহরণ রয়েছে, এবং এখানে মানচিত্রের জন্য এসএলডি-তে থাকা ডক্স রয়েছে। এসএলডি একটি ওজিসি স্ট্যান্ডার্ড, তবে হায়, এটি জিওসিভার এবং ম্যাপসভারে ঠিক একইভাবে প্রয়োগ করা হয়নি। তবে আমি আশা করি উপরের উদাহরণটি কাজ করবে - এমনকি ফিল্টারও
কাটাহদিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.