• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

  • Forum yazılımı güncelenmiştir.

    Beklenmedik durumlar görürseniz lütfen yönetime iletin.

TKGM den excel ile sorgulama yapmak ve bilgi almak mümkün müdür?

@RBozkurt , şöyle olabilir.....

JavaScript:
function TKGM_V5Light() {
  var myArr=["SORGULANAN VERİ","İL","İLÇE","MAHALLE","ADA","PARSEL",
             "NİTELİK","ALAN","DURUM","GİTTİĞİ PARSEL SEBEP"];
  var ssData     = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var ssSonuclar = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sonuçlar");
  ssSonuclar.getRange('A1:J1').setValues([myArr]);
  ssSonuclar.getRange(1,1,1,ssSonuclar.getLastColumn()).setFontWeight("bold");
  var myRng = ssSonuclar.getRange(2,1,ssSonuclar.getLastRow(),ssSonuclar.getLastColumn());
  myRng.clear();
  const dataRange = ssData.getRange('A2:A');
  const values = dataRange.getValues().filter(array=>array != '');
  var iRow = 1
  var jRow = 1
  for(var j = 0; j < values.length; j++) {
    iRow = iRow + 1;
    jRow = jRow + 1;
    var mahalleID = ssData.getRange('A'+ jRow ).getValue();
    var ada = ssData.getRange('B'+ jRow ).getValue() + 0;
    var parsel = ssData.getRange('C'+ jRow ).getValue() + 0;
 
    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + ada + '/' + parsel ;
     
    try {
      var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        } catch (e) {
          httpResponse.getResponseCode();
          Browser.msgBox('Hata var...!\\n\\n' + e.toString(), Browser.Buttons.OK);
          return;
      }
   
    var responseContent = httpResponse.getContentText();
    var responseCode = httpResponse.getResponseCode();
    if (responseCode == 200) {
        objJSON = JSON.parse(responseContent);
        ssSonuclar.getRange(iRow,1).setValue(objJSON.properties['mahalleId']+' '+(objJSON.properties['mahalleAd'])+' '+(objJSON.properties['adaNo'])+' / '+(objJSON.properties['parselNo']));
        ssSonuclar.getRange(iRow,2).setValue(objJSON.properties['ilAd']);
        ssSonuclar.getRange(iRow,3).setValue(objJSON.properties['ilceAd']);
        ssSonuclar.getRange(iRow,4).setValue(objJSON.properties['mahalleAd']);
        ssSonuclar.getRange(iRow,5).setValue(Number(objJSON.properties['adaNo']));
        ssSonuclar.getRange(iRow,6).setValue(Number(objJSON.properties['parselNo']));
        ssSonuclar.getRange(iRow,7).setValue(objJSON.properties['nitelik']);
        ssSonuclar.getRange(iRow,8).setValue(objJSON.properties['alan']);
        var durum = objJSON.properties['durum'].toString();
        if (durum === '1'){
          ssSonuclar.getRange(iRow,9).setValue('Aktif');
          ssSonuclar.getRange(iRow,10).setValue(' ');
        }
        else {
          ssSonuclar.getRange(iRow,9).setValue('Pasif');
          ssSonuclar.getRange(iRow,10).setValue(objJSON.properties['gittigiParselSebep']);
          var strJSon = objJSON.properties.gittigiParselListe.toString();
          objJSON2 = JSON.parse(strJSon);
          myList = objJSON2.features;
          var countParcels = myList.length;            
          for (var i = 0; i<countParcels; i++){
            iRow = iRow+1
            ssSonuclar.getRange(iRow,2).setValue(myList[i]['properties']['ilAd']);
            ssSonuclar.getRange(iRow,3).setValue(myList[i]['properties']['ilceAd']);
            ssSonuclar.getRange(iRow,4).setValue(myList[i]['properties']['mahalleAd']);
            ssSonuclar.getRange(iRow,5).setValue(Number(myList[i]['properties']['adaNo']));
            ssSonuclar.getRange(iRow,6).setValue(Number(myList[i]['properties']['parselNo']));
            ssSonuclar.getRange(iRow,7).setValue(myList[i]['properties']['nitelik']);
            ssSonuclar.getRange(iRow,8).setValue(myList[i]['properties']['alan']);
            var durum = myList[i]['properties']['durum'].toString();
            if (durum === '1'){
              ssSonuclar.getRange(iRow,9).setValue('Aktif');
              //ssSonuclar.getRange(iRow,16).setValue(myList[i]['geometry']['coordinates'].toString());
              ssSonuclar.getRange(iRow,10).setValue(' ');
            }
              else {
                ssSonuclar.getRange(iRow,9).setValue('Pasif');
                ssSonuclar.getRange(iRow,10).setValue(objJSON.properties['gittigiParselSebep']);
              }
          }
        }  
    }
    else if (responseCode !== 200){
      ssSonuclar.getRange(iRow,4).setValue(responseContent);
    }
  }
  ssSonuclar.getRange(1,1,iRow,1).setBackgroundRGB(255, 255, 143);
}




Capture.PNG



A sütunundaki dolgu rengini ayarlamak için en son satırdaki RGB kodlarını istediğiniz gibi değiştirebilirsiniz.


.
 
Son düzenleme:
@RBozkurt , şöyle olabilir.....

JavaScript:
function TKGM_V5Light() {
  var myArr=["SORGULANAN VERİ","İL","İLÇE","MAHALLE","ADA","PARSEL",
             "NİTELİK","ALAN","DURUM","GİTTİĞİ PARSEL SEBEP"];

  var ssData     = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var ssSonuclar = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sonuçlar");

  ssSonuclar.getRange('A1:J1').setValues([myArr]);
  ssSonuclar.getRange(1,1,1,ssSonuclar.getLastColumn()).setFontWeight("bold");

  var myRng = ssSonuclar.getRange(2,1,ssSonuclar.getLastRow(),ssSonuclar.getLastColumn());
  myRng.clear();

  const dataRange = ssData.getRange('A2:A');
  const values = dataRange.getValues().filter(array=>array != '');

  var iRow = 1
  var jRow = 1

  for(var j = 0; j < values.length; j++) {
    iRow = iRow + 1;
    jRow = jRow + 1;

    var mahalleID = ssData.getRange('A'+ jRow ).getValue();
    var ada = ssData.getRange('B'+ jRow ).getValue() + 0;
    var parsel = ssData.getRange('C'+ jRow ).getValue() + 0;

    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + ada + '/' + parsel ;
  
    try {
      var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        } catch (e) {
          httpResponse.getResponseCode();
          Browser.msgBox('Hata var...!\\n\\n' + e.toString(), Browser.Buttons.OK);
          return;
      }

    var responseContent = httpResponse.getContentText();
    var responseCode = httpResponse.getResponseCode();

    if (responseCode == 200) {
        objJSON = JSON.parse(responseContent);

        ssSonuclar.getRange(iRow,1).setValue(objJSON.properties['mahalleId']+' '+(objJSON.properties['mahalleAd'])+' '+(objJSON.properties['adaNo'])+' / '+(objJSON.properties['parselNo']));
        ssSonuclar.getRange(iRow,2).setValue(objJSON.properties['ilAd']);
        ssSonuclar.getRange(iRow,3).setValue(objJSON.properties['ilceAd']);
        ssSonuclar.getRange(iRow,4).setValue(objJSON.properties['mahalleAd']);
        ssSonuclar.getRange(iRow,5).setValue(objJSON.properties['adaNo'] + 0);
        ssSonuclar.getRange(iRow,6).setValue(objJSON.properties['parselNo']);
        ssSonuclar.getRange(iRow,7).setValue(objJSON.properties['nitelik']);
        ssSonuclar.getRange(iRow,8).setValue(objJSON.properties['alan']);

        var durum = objJSON.properties['durum'].toString();

        if (durum === '1'){
          ssSonuclar.getRange(iRow,9).setValue('Aktif');
          ssSonuclar.getRange(iRow,10).setValue(' ');
        }
        else {
          ssSonuclar.getRange(iRow,9).setValue('Pasif');
          ssSonuclar.getRange(iRow,10).setValue(objJSON.properties['gittigiParselSebep']);

          var strJSon = objJSON.properties.gittigiParselListe.toString();

          objJSON2 = JSON.parse(strJSon);
          myList = objJSON2.features;

          var countParcels = myList.length;         

          for (var i = 0; i<countParcels; i++){
            iRow = iRow+1
            ssSonuclar.getRange(iRow,2).setValue(myList[i]['properties']['ilAd']);
            ssSonuclar.getRange(iRow,3).setValue(myList[i]['properties']['ilceAd']);
            ssSonuclar.getRange(iRow,4).setValue(myList[i]['properties']['mahalleAd']);
            ssSonuclar.getRange(iRow,5).setValue(myList[i]['properties']['adaNo'] + 0);
            ssSonuclar.getRange(iRow,6).setValue(myList[i]['properties']['parselNo']);
            ssSonuclar.getRange(iRow,7).setValue(myList[i]['properties']['nitelik']);
            ssSonuclar.getRange(iRow,8).setValue(myList[i]['properties']['alan']);

            var durum = myList[i]['properties']['durum'].toString();

            if (durum === '1'){
              ssSonuclar.getRange(iRow,9).setValue('Aktif');
              //ssSonuclar.getRange(iRow,16).setValue(myList[i]['geometry']['coordinates'].toString());
              ssSonuclar.getRange(iRow,10).setValue(' ');
            }
              else {
                ssSonuclar.getRange(iRow,9).setValue('Pasif');
                ssSonuclar.getRange(iRow,10).setValue(objJSON.properties['gittigiParselSebep']);
              }
          }
        }
    }
    else if (responseCode !== 200){
      ssSonuclar.getRange(iRow,4).setValue(responseContent);
    }
  }
  ssSonuclar.getRange(1,1,iRow,1).setBackgroundRGB(255, 255, 143);
}


A sütunundaki dolgu rengini ayarlamak için en son satırdaki RGB kodlarını istediğiniz gibi değiştirebilirsiniz.


Ekli dosyayı görüntüle 239416


.


ssSonuclar.getRange(iRow,5).setValue(myList[i]['properties']['adaNo'] + 0);

Parsel 55 işe 550 oluyor. Sona +0 ekledi.
 
Sayın haluk Hocam ;

Bu özverili çalışmanızı lütfen excel'ede uyarlayabilirseniz çok seviniriz.

Saygılarımla.
 
Sayın Haluk Hocam,
Acaba bu hatanın çözümü var mıdır? (Windows 11, Office 2010Pro)
Saygılarımla
 

Ekli dosyalar

  • tapuHD3-hata13.PNG
    tapuHD3-hata13.PNG
    136 KB · Görüntüleme: 21
Bilemiyorum, bende hata vermiyor.......

Eğer verileri bir web sayfası ya da PDF gibi bir dokümandan kopyalayıp yapıştırıyorsanız belki görünmeyen bir karakter sorun yaratıyor olabilir.

Eğer dediğim gibi kopyala yapıştır yaptığınızda hata veriyorsa, ada parsel verilerini manuel olarak elle yazarak çalıştırın.

.
 
Olmazsa, bir de başka benzer dosyada deneyin .... örneğin en son 126 No'lu mesajın ekindeki dosyada.

.
 
Sayın Haluk Hocam,
Tamam deneyecek ve sizi bilgilendireceğim
Saygılarımla
 
Sayın Haluk Hocam,
Alan sütununa gelince duruyor, en yeni dosyada da eski dosyada da denendi. Sayılardaki nokta ve virgül, Fransızca'da da bizdeki gibi kullanılıyor. Belki o hücredeki bir şey tetikleyip durduruyor makroyu. Belki küsurattan vaz geçsek bu problem bitecek. Bilemiyorum.
Not : resmin alındığı makinede Windows10 ve Office10 var ve 64 bit
Saygılarımla
 

Ekli dosyalar

  • image1.jpeg
    image1.jpeg
    107.7 KB · Görüntüleme: 14
Evet, kodda "Alan" verisini nümerik veri haline getiren bir işlem var. Sizdeki sorun ordan kaynaklanıyor.

Benim bilgisayar ve Excel versiyonu İngilizce ama tüm ayarlar Türkiye için geçerli.

.
 
Sayın Haluk Hocam,
Evet, Türkiye ayarlarına çevirince sorun çözüldü.
Tekrar teşekkür ederim Haluk hocam
Saygılarımla
 
Merhaba Haluk Hocam
Alınan koordinatlar ile KML dosyası yapmaya çalışıyorum. Excel'den gelen ;
30.57186,36.9973,
30.57189,36.99715,
30.57189,36.99711,
30.57219,36.99713,
30.57215,36.99732,
30.57186,36.9973
şeklinde oluyor ama KML dosyası
30.57186,36.99730
30.57189,36.99715
30.57189,36.99711
30.57219,36.99713
30.57215,36.99732
30.57186,36.99730
şeklinde veriyi kabul ediyor koordinat noktaları sonundaki virgülleri nasıl kaldırabiliriz ?
Saygılarımla
 
Mahalle İD sini nereden yazıyorsunuz çözemedim ?
 
Merhaba Haluk Hocam
Alınan koordinatlar ile KML dosyası yapmaya çalışıyorum.....
........
....

Ekli revize dosya, seçilen parseller eğer "Aktif" durumdaysa, ilgili KML dosyasını Excel dosyasının olduğu yere indirir.

KML dosyasını Google Earth ile açtığınızda, sizi işaretlenmiş parsele götürür. Parselin üzerine tıkladığınızda ise, bilgileri gösterir.

Not: Söz konusu KML dosyası direkt olarak TKGM'den indirilmektedir.


Capture.PNG


.
 

Ekli dosyalar

Son düzenleme:
Çok çok teşekkür ederim emeğinize sağlık
 
Ekli revize dosya, seçilen parseller eğer "Aktif" durumdaysa, ilgili KML dosyasını Excel dosyasının olduğu yere indirir.

KML dosyasını Google Earth ile açtığınızda, sizi işaretlenmiş parsele götürür. Parselin üzerine tıkladığınızda ise, bilgileri gösterir.

Not: Söz konusu KML dosyası direkt olarak TKGM'den indirilmektedir.


Ekli dosyayı görüntüle 239746


.

Merhaba sayın @Haluk üstad
Ekteki dosyayı test edebilirmisiniz. Hata vermektedir.

***

Ayrıca aynı işlemi yapmak için google sheets revizyonu varmıdır?
 

Ekli dosyalar

Sanırım hata veren parsel aktif olmasına rağmen, sunucudaki veri tabanında koordinat listesi yok.

O nedenle hata oluşuyor, her zaman rastlanan bir durum değildir umarım.

*********************************************************************************************************

İlave
: Ekli dosyada revizyon yaptım ama tam deneyemedim çünkü günlük limit dolmuş :)


.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst