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

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@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

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
592
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
@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.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ssSonuclar.getRange(iRow,5).setValue(myList[i]['properties']['adaNo'] + 0);

Parsel 55 işe 550 oluyor. Sona +0 ekledi.

Anladım.... 121 No'lu mesajdaki script'i revize ettim. Tekrar dener misiniz?

.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
511
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sayın haluk Hocam ;

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

Saygılarımla.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi

Ekli dosyalar

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
511
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Haluk bey ;
Teşekkür ederim, sağlıcakla ve mutlu kalın.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,667
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Haluk Hocam,
Acaba bu hatanın çözümü var mıdır? (Windows 11, Office 2010Pro)
Saygılarımla
 

Ekli dosyalar

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Olmazsa, bir de başka benzer dosyada deneyin .... örneğin en son 126 No'lu mesajın ekindeki dosyada.

.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,667
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Haluk Hocam,
Tamam deneyecek ve sizi bilgilendireceğim
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,667
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
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

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,667
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Haluk Hocam,
Evet, Türkiye ayarlarına çevirince sorun çözüldü.
Tekrar teşekkür ederim Haluk hocam
Saygılarımla
 

jilazem

Altın Üye
Katılım
17 Temmuz 2007
Mesajlar
26
Excel Vers. ve Dili
2013 x64
Altın Üyelik Bitiş Tarihi
25-09-2026
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
 
Katılım
20 Ocak 2005
Mesajlar
526
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
Mahalle İD sini nereden yazıyorsunuz çözemedim ?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:

jilazem

Altın Üye
Katılım
17 Temmuz 2007
Mesajlar
26
Excel Vers. ve Dili
2013 x64
Altın Üyelik Bitiş Tarihi
25-09-2026
Çok çok teşekkür ederim emeğinize sağlık
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
592
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
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

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,383
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:
Üst