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


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.