অঙ্কন বৈশিষ্ট্য নিয়ন্ত্রণ দ্বারা নির্মিত বৈশিষ্ট্যগুলি কীভাবে স্টাইল করবেন?


9

আমি এই টিউটোরিয়ালটি অনুসরণ করছি: http://workshop.pgrouting.org/chapters/geoext_client.html#select-the-start-and-final-destination

এটিতে একটি ওপেনলায়ার রয়েছে ont নিয়ন্ত্রণ D ড্রভ ফিচার নিয়ন্ত্রণ নিম্নলিখিত কোড নমুনায় সংজ্ঞায়িত। আপনি যে লাইনে লেখক মন্তব্য করেছেন সেগুলিও দেখতে পারেন "যদি আমরা এখানে প্রথমে আমাদের স্টার্ট পয়েন্টটিতে একটি বিশেষ স্টাইল প্রয়োগ করতে চাই" । সমস্যাটি হ'ল: এই সেটিংয়ে কীভাবে কোনও স্টাইল প্রয়োগ করতে হয় তা আমি জানি না এবং এইভাবে ড্রফিটচার্স নিয়ন্ত্রণ ব্যবহার করে কোনও উদাহরণ খুঁজে পাচ্ছি না।

এই ড্র-ফিচার নিয়ন্ত্রণটি ব্যবহার করে আমি কীভাবে স্টার্ট পয়েন্টটি শেষ পয়েন্টের চেয়ে আলাদা স্টাইল ব্যবহার করতে পারি?

DrawPoints = OpenLayers.Class(OpenLayers.Control.DrawFeature, {

// this control is active by default
autoActivate: true,

initialize: function(layer, options) {
    // only points can be drawn
    var handler = OpenLayers.Handler.Point;
    OpenLayers.Control.DrawFeature.prototype.initialize.apply(
            this, [layer, handler, options]
        );
},

drawFeature: function(geometry) {
    OpenLayers.Control.DrawFeature.prototype.drawFeature.apply(
            this, arguments 
        );
    if (this.layer.features.length == 1) {
        // we just draw the startpoint
        // note: if we want to apply a special style to the 
        //       start point we should do this here
    } else if (this.layer.features.length == 2) {
        // we just draw the finalpoint
        // note: if we want to apply a special style to the 
        //       final point we should do this here

        // we have all what we need; we can deactivate ourself.
        this.deactivate();            
    }
}
});

উত্তর:


7

আপনার স্টাইল অনুসারে এই লাইনগুলি যুক্ত করুন এবং সেগুলি সংশোধন করুন:

...
    if (this.layer.features.length == 1) {
        // we just draw the startpoint
        // note: if we want to apply a special style to the 
        //       start point we should do this here

        var myFirstPointStyle = OpenLayers.Util.applyDefaults(myFirstPointStyle, OpenLayers.Feature.Vector.style['default']);
        myFirstPointStyle.fillOpacity = 0.8;
        myFirstPointStyle.strokeWidth = 2;
        myFirstPointStyle.fillColor = "#ffffff";
        this.layer.features[this.layer.features.length - 1].style = myFirstPointStyle;

        this.layer.redraw();

    } else if (this.layer.features.length == 2) {
        // we just draw the finalpoint
        // note: if we want to apply a special style to the 
        //       final point we should do this here
        var mySecondPointStyle = OpenLayers.Util.applyDefaults(mySecondPointStyle, OpenLayers.Feature.Vector.style['default']);
        mySecondPointStyle.fillOpacity = 0.8;
        mySecondPointStyle.strokeWidth = 7;
        mySecondPointStyle.pointRadius = 12;
        mySecondPointStyle.fillColor = "#000000";
        this.layer.features[this.layer.features.length - 1].style = mySecondPointStyle;

        this.layer.redraw();


        // we have all what we need; we can deactivate ourself.
        this.deactivate();
    }
...

এটি ডিফল্ট স্টাইলটি অনুলিপি করবে এবং আপনি সেখান থেকে এটি পরিবর্তন করতে পারেন। আপনার এই জাতীয় কিছু পাওয়া উচিত:

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


দুর্দান্ত, ধন্যবাদ! দেখে মনে হচ্ছে পুনরায় কল করা () এখানে কী। আমি কখনোই চেষ্টা যে :)
— underdark

আপনাকে স্বাগত জানাই, একজন মাস্টারকে সাহায্য করার জন্য এটি সর্বদা লাভজনক :)
— ক্যাপ্টড্রাগন

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