17 Ekim 2015 Cumartesi

Javascript ile Querytask Örneği

Bugün katmanlarda sorgu işlemi nasıl yapılıyor bakalım. Javascript ArcGis  kütüphanesi kullanarak katmanlarda sorguyu yapabiliriz

sorgu: function () {

       var urli = "Sorgulamak istediğimiz katmanın url uzantısını buraya yazıyorsunuz";
       var qParams = new esri.tasks.Query();
       qParams.returnGeometry = false;//geometrik bir sorgu yaptığımızda burası true olacak
         //yukarısı true olursa; 
        //qParams.geometry=geometrisiz alınan değeri buraya işleyebilirsiniz. Mesela haritaya tıklayınca aldığınız koordinatı yazarsanız tıkladığınız yerdeki sorguyu çeker.
       qParams.outFields = ["BOLGE_ADI", "ISLETME_ADI"];//katmandan herşey gelsin derseniz buraya "*" şeklinde yazın.
       qParams.where = '1=1'; //Şartımız ISLETME_ADI =="Bilecik"...gibi istediğiniz şarta göre yazabilirsiniz
       qParams.outSpatialReference = this.map.spatialReference; //Burda haritada varsaydığımız spatialReference verdik
       var task = new esri.tasks.QueryTask(urli);
       task.execute(qParams, dojo.hitch(this, this.onIsletmeAra)) //dojo üzerinden gittiğim için bu şekilde oldu. normalde task.execute(qParams, gidilecekmetod) yeterli olacaktır.
   },

 onIsletmeAra: function (featureSeti) {

        var fi;
       var valuesi = [];
       var valuesii = [];

       for (var i = 0; i < featureSeti.features.length; i++) { //sorguda feature sayısı kadar yani katmandaki veri sayısı kadar dönecek
           fi = featureSeti.features[i];  
             valuesi.push({ iname: fi.attributes.ISLETME_ADI }); // İşletme adlarını alıp valuesi diye tanımladığımız diziye yazacak
             valuesii.push({ bname: fi.attributes.BOLGE_ADI })
       
            ......artık dizideki verileri nerde göstermek isterseniz kodlamanıza ona göre devam edebilirsiniz.Ben hepsini comboxa işlediğim için şu şekilde devam ettim:

         var dataItemsi = {
        identifier: 'iname',
        items: valuesi

           };
         var storei = new dojo.data.ItemFileReadStore({
        data: dataItemsi

       });
       this.widgets.cbos.store = storei;//cbos combomuza oluştururken verdiğimiz isim.
       this.widgets.cbos.searchAttr = "iname";
   },


   },

Hiç yorum yok:

Yorum Gönder