Page tree
Skip to end of metadata
Go to start of metadata

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.

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:

 

 {
      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:

   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

{ cancelMarks: false, cancelHighlight: false, fit: fit, result: result };

 

Örnek Kullanım

 

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

 

 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

 

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:

{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

 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:

 

{
        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
                   },
}