Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Table of Contents

Netigma Harita Sayfası Davranışları Nasıl Özelleştirilebilir

Netigma harita sayfası istemci tarafında, temel işlemlerinden önce ve sonra çalışan olaylar (event) bulunur. Api kullanıcıları bu olayları dinleyerek sayfa davranışlarını değiştirebilir. 

Aşağıdaki olaylara netigma.mappage.events (js) sınıfı üzerinden erişilebilir.

  • beforegridbind
  • aftergridbind
  • beforehighlight
  • afterhighlight
  • openreport
  • beforeaddmark

 

beforegridbind

Bu olay, sorgu harita üzerinde çalıştırılmadan önce tetiklenir. Bu sayede geliştirici, harita giridini bind edecek olan parametreleri ihtiyacı doğrultusunda değiştirip sorgu sonucu davranışı değiştirebilir. Örneğin sayfalamayı iptal etmek isteyen bir kullanıcı bu işlemi aşağıdaki şekilde gerçekleştirebilir.

Code Block
languagejs
linenumberstrue
netigma.mappage.events.beforegridbind(
    function (eventArgs) {
        eventArgs.options.allowPaging = false; // sayfalama iptal edilir.
        console.log(eventArgs.options);
    });

 

Bu event içerisinde, sorgulama çalışmadan önce değiştirilebilecek parametreler:

 

Code Block
languagejs
linenumberstrue
 {
      queryName: "Sorgu adı", // Duruma göre çalışacak sorguyu değiştirebilir
      criteria: "Ogc kriter", //Api kullanıcısı sorgu çlıştırılmadan önce , kritere ekleme yapabilir.                     
      allowPaging:true | false
 };

aftergridbind

Sorgu sunucuda çalıştırılıp grid sayfada oluşturulduğunda, gridin her bir satırına denk gelen bir client dataset oluşturulur. Bu dataset içerisinde sorgu sonucundaki tüm kolonlar ile haritada highlight edilecek katmanın bilgisi bulunur. Bu olayı dinleyen bir geliştirici sorgu tamamlandığında bu dataset e erişebilir.

Örnek kullanım:

Code Block
languagejs
linenumberstrue
   netigma.mappage.events.aftergridbind(
            function(options){
                console.log("aftergridbind");
                console.log(options);
            }

        );


Kodun geliştirici konsolundaki çıktısı:

beforehighlight

Haritada highlight ve mark ekleme işlemi gerçekleşmeden önce çalışır. Geliştirici, mark ekleme ve /veya highlight işemini iptal edebilir. Highlight edilecek nesne dizisini değiştirebilir. Değiştirilebileck değerler

Code Block
languagejs
linenumberstrue
{ cancelMarks: false, cancelHighlight: false, fit: fit, result: result };

 

Örnek Kullanım

 

Code Block
languagejs
linenumberstrue
netigma.mappage.events.beforehighlight(
      function(options){
      console.log("beforehighlight");
      console.log(options);
      options.cancelMarks = false; //mark eklenmez. 
      options.cancelHighlight = true;
   }

);

 

afterhighlight

Haritada highlight işlemi çalıştıktan sonra tetiklenir (beforehighlight da highlight işlemi engellense bile). Olay metodu geliştiriciye haritaya eklenmesi gereken featureları sağlar. Böylece kullanıcı kendi özel highlight ya da mark ekleme işlemini gerçekleştirebilir.

Örnek Kullanım

 

Code Block
languagejs
linenumberstrue
 netigma.mappage.events.afterhighlight(
            function(options){
                console.log("afterhighlight");
                console.log(options.features[0].getGeometry());                              
            }
        );

Yukarıdaki event çalıştığında, geliştirici konsolunda feature  (ol.Feature) nesnesi dizisine erişebilir. 

openreport

Marka tıklandığında, ya da griddeki bir satıra çift tıklandığında Netigma raporu açılır. Bu rapor açılmadan önce openreport olayı tetiklenir. Geliştirici raporun açılmasını engelleyebilir ve kendi özel rapor görünümünü oluşturabilir.

Örnek Kullanım

 

Code Block
languagejs
linenumberstrue
netigma.mappage.events.openreport(
         function(options){
             console.log("openreport");
             options.cancel = true;
             console.log(options);                
            }
);

Yukarıdaki event çalıştığında,  Netigma raporu açılmaz. Geliştiriciye rapor parametreleri options nesnesi ile sağlandığından geliştrici örn netigma raporunu bir iframe içersinide özel bir pozisyonda açabilir.

options parametresi ile gelen örnek bir veri:

Code Block
languagejs
linenumberstrue
{cancel: false, keyfield: "objectid", id: "4", reportName: "GEOMAHALLE.mahalle_balon", queryName: "StandartMahalleSorgusu"}

beforeaddmark

Bu olay, Netigmanın haritaya otomatik olarak eklediği Markları özelleştirmeye olanak tanır. Örneğin Mark eklenmeden önce, koşula bağlı olarak eklenecek mark'ın ve callback fonksiyonunun değiştirilmesi mümkündür.

Örnek Kullanım

Code Block
languagejs
linenumberstrue
 netigma.mappage.events.beforeaddmark(
        function(options){
            if(options.callbackParameters.keyValue== 2)
            {
                options.icon= 'EM_netman01_aqua'; // ikon değişir
            }

            if(options.callbackParameters.keyValue== 3)
            {
                options.icon= 'EM_netman03_aqua';
                options.callbackFunction = function(args){
 	               console.log("test calback");
                   console.log(args);
                };
         }
                
  );


    

Yukarıdaki kod parçacığı sonucunda haritada marklar aşağıdaki gibi değişir ve 2 numaralı mahallenin ikonuna tıklandığnda özel bir fonksiyon çalışır

Bu event içerisinde, sorgulama çalışmadan önce değiştirilebilecek parametreler:

 

Code Block
languagejs
linenumberstrue
{
        checkPrevious: false,
        // icon: "EM_netman02",
        coordinate: ol.nc.netigma.mappage.highlightedMarkers[keyField][keyValue].coordinates,
        callbackFunction: ol.nc.netigma.mappage.markerCallback,
        callbackParameters: {
                        keyField: keyField,
                        keyValue: keyValue,
                        layerName: options.layerName,
                        tableKeyField: ol.nc.netigma.mappage.highlightedMarkers[keyField][keyValue].tableKeyField
                   },
}