• 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?

Sayın Haluk Hocam,
İlginize çok teşekkür ederim. Tabii ki "Mahalle ID" değerlerini sağlamayı garanti ederim. Şüpheniz olmasın.
Yaş hadinden emekli olduğumdan beri okullara ve yakın dostlarıma excel ile yardımcı olmaya çalışıyorum. Hem öğreniyor hem öğretiyorum.
Saygılarımla
 
Tamamdır.... eğer Mahalle ID'leri kullanarak sonuç alırsam, haber veririm....

.
 
Sayın Haluk Hocam,
İlginize çok teşekkür ederim. Haberinizi bekliyorum.
Saygılarımla
 
5+ yıllık veridir. %100 doğruluğu yoktur.
Güncellenen mahalle vb. isimleri olduğu düşünülmektedir.
Yine de iş görür..


TKGM üzerinden bu ID numalaralına ulaşılabiliyor.
81 il 57900 küsür mahalle..
Kolay bir yöntemi olsa güncellense tamamen süper olur.
 

Ekli dosyalar

  • ID.xlsx
    ID.xlsx
    2.1 MB · Görüntüleme: 35
Tevfik Bey, haberler iyi .....

Aşağıdaki görselde belirtildiği gibi siz sadece Mahalle ID, Ada ve Parsel'i gireceksiniz...... gerisini, sunucuya yolladığımız sorgudan geri dönen cevaptan alıp sayfaya işliyoruz....


TestHD.gif


Görseldeki işi yapan script aşağıda verilmiştir;

JavaScript:
function getData_mahalleID() {
  var myArr=["İL","İLÇE","MAHALLE","MEVKİİ","ZEMİN DURUM","NİTELİK","ALAN","PAFTA"];
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss.getRange('C1:J1').setValues([myArr])

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

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

    var mahalleID = ss.getRange('A'+ iRow ).getValue();
    var adaParsel = ss.getRange('B'+ iRow ).getValue()
   
    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + adaParsel
   
    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);
     
      // objJSON elemanlari >>> "type", "Feature", "geometry", "properties"
      // Aradigimiz veriler "properties" nesnesi icinde  

        ss.getRange(j+2,3).setValue(objJSON.properties['ilAd']);
        ss.getRange(j+2,4).setValue(objJSON.properties['ilceAd']);
        ss.getRange(j+2,5).setValue(objJSON.properties['mahalleAd']);
        ss.getRange(j+2,6).setValue(objJSON.properties['mevkii']);
        ss.getRange(j+2,7).setValue(objJSON.properties['zeminKmdurum']);
        ss.getRange(j+2,8).setValue(objJSON.properties['nitelik']);      
        ss.getRange(j+2,9).setValue(objJSON.properties['alan']);
        ss.getRange(j+2,10).setValue(objJSON.properties['pafta']);
    }
    else if (responseCode !== 200){
      ss.getRange(j+2,3).setValue(responseContent)
    }
  }
}


Not: Hatalı verilerle ilgili durumda, sayfaya sunucudan gelen mesaj yazdırılmaktadır....


Bu arada, @RBozkurt 'un eklediği dosyadaki Mahalle ID'leri de doğru görünüyor. Gerektiğinde oradan da faydalanabilirsiniz.


.
 
Sayın Haluk Hocam,
İlginize çok teşekkür ederim.
Saygılarımla
 
LÜTFEN RİCA EDEYORUM VBA KODLARI GİRİLMİŞ ŞEKİLDE ÖRNEK DOYASINIZ VARSA PAYLŞAIRMISINIZ. YAPTIĞIM İŞLE ÇOK ALAKALI İŞİMİ KOLAYLAŞTIRACAĞINI DÜŞÜNÜYORUM.
 
Sayın Sonarex33,
Hazırlanan script GoogleSheets te çalışıyor, excel VBA değil.
iyi çalışmalar
 
Sayın Sonarex33,
Sanırım GoogleDrive kullanmıyorsunuz?
Belki arkadaşlardan bu konuda yardım eden çıkar.
iyi çalışmalar
 
@Haluk hocam bu ID numaralarını makro ile sistemden çektirme işlemi yapılabilir mi?
 
ID'ler hangi URL'de ? Bakmak lazım ....

.
 
En güncel İL, İLÇE ve MAHALLE Kodları aşağıdaki videoda görüldüğü gibi Google Script ile alınabilmektedir....

Tüm Türkiyede haliyle çok fazla sayıda mahalle olduğu için; ilk önce aradığımız mahalleye ait İL Kodunu bir script ile buluyoruz. Bulduğumuz bu İL KODU ile İLÇE KODLARINI ikinci script ile sorgulayıp aradığımız İLÇE KODUNU bulduktan sonra bu kez bu İLÇE KODU ile MAHALLE KODLARINI sorgulayıp, aradığımız MAHALLE KODUNU buluyoruz.....


TestHD.gif


.
 
Son düzenleme:
Tevfik Bey, haberler iyi .....

Aşağıdaki görselde belirtildiği gibi siz sadece Mahalle ID, Ada ve Parsel'i gireceksiniz...... gerisini, sunucuya yolladığımız sorgudan geri dönen cevaptan alıp sayfaya işliyoruz....


Ekli dosyayı görüntüle 238998


Görseldeki işi yapan script aşağıda verilmiştir;

JavaScript:
function getData_mahalleID() {
  var myArr=["İL","İLÇE","MAHALLE","MEVKİİ","ZEMİN DURUM","NİTELİK","ALAN","PAFTA"];
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss.getRange('C1:J1').setValues([myArr])

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

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

    var mahalleID = ss.getRange('A'+ iRow ).getValue();
    var adaParsel = ss.getRange('B'+ iRow ).getValue()
  
    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + adaParsel
  
    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);
    
      // objJSON elemanlari >>> "type", "Feature", "geometry", "properties"
      // Aradigimiz veriler "properties" nesnesi icinde 

        ss.getRange(j+2,3).setValue(objJSON.properties['ilAd']);
        ss.getRange(j+2,4).setValue(objJSON.properties['ilceAd']);
        ss.getRange(j+2,5).setValue(objJSON.properties['mahalleAd']);
        ss.getRange(j+2,6).setValue(objJSON.properties['mevkii']);
        ss.getRange(j+2,7).setValue(objJSON.properties['zeminKmdurum']);
        ss.getRange(j+2,8).setValue(objJSON.properties['nitelik']);     
        ss.getRange(j+2,9).setValue(objJSON.properties['alan']);
        ss.getRange(j+2,10).setValue(objJSON.properties['pafta']);
    }
    else if (responseCode !== 200){
      ss.getRange(j+2,3).setValue(responseContent)
    }
  }
}


Not: Hatalı verilerle ilgili durumda, sayfaya sunucudan gelen mesaj yazdırılmaktadır....


Bu arada, @RBozkurt 'un eklediği dosyadaki Mahalle ID'leri de doğru görünüyor. Gerektiğinde oradan da faydalanabilirsiniz.


.


Hocam google script nasıl öğrenebilirim acaba ?
 
Merhaba Arkadaşım,
Ben de henüz öğrenebilmiş değilim. Ama sitedeki imkanlar oldukça uygun. İlgi duyduğunuz konulara bakıp tekrarlayarak öğrenebilirsiniz diye düşünüyorum.
İyi çalışmalar
 
En güncel İL, İLÇE ve MAHALLE Kodları aşağıdaki videoda görüldüğü gibi Google Script ile alınabilmektedir....

Tüm Türkiyede haliyle çok fazla sayıda mahalle olduğu için; ilk önce aradığımız mahalleye ait İL Kodunu bir script ile buluyoruz. Bulduğumuz bu İL KODU ile İLÇE KODLARINI ikinci script ile sorgulayıp aradığımız İLÇE KODUNU bulduktan sonra bu kez bu İLÇE KODU ile MAHALLE KODLARINI sorgulayıp, aradığımız MAHALLE KODUNU buluyoruz.....


Ekli dosyayı görüntüle 239008


.
@Haluk ustam bu işlemi bir döngüye,

İl sorgusu yapıp akabinde ilçeleri akabinde mahalleleri derken yukarıda paylaşmış olduğum ID listesi güncellenmiş olur :D
 
Tabii ki yapılır, ama yaklaşık 60.000 mahalle için script biraz uzun sürer herhalde......

Sonuçta Google Script web tabanlı bir yazılım olduğu için ve bu script'de bir Web Servis kullandığımız için süreden dolayı çekindiğimden ben o yolu tercih etmedim.

.
 
Sizin içinde mümkünse kodları paylaşmak, ben peyderpey il il güncelleme yaparım.
İl kodunu girip veriyi çekme gibi.

Yukarıdaki veri normalde bir .mdb database şeklinde. Ben excele çevirip paylaştım.
 
İL LİSTESİ için script;

JavaScript:
function getIL_Liste() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    ss.getRange('A2:C').clear()
    var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilListe' 
    
    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);
      for (var i=0;i<objJSON.features.length;i++) {
        ss.getRange(i+2,1).setValue(i+1);
        ss.getRange(i+2,2).setValue(objJSON.features[i]['properties']['text']);
        ss.getRange(i+2,3).setValue(objJSON.features[i]['properties']['id']);
      }
    }
    else if (responseCode !== 200){
      ss.getRange(i+2,2).setValue(responseContent);
  } 
}


İLÇE LİSTESİ için script;

JavaScript:
function getILCE_Liste() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    ss.getRange('A2:C').clear()
    var ui = SpreadsheetApp.getUi();
    var IL_ID = ui.prompt("İL Kodunu buraya girin...").getResponseText();
    if (IL_ID !=='') {
      var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilceListe/' + IL_ID ;
      
      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);
        for (var i=0;i<objJSON.features.length;i++) {
          ss.getRange(i+2,1).setValue(i+1);
          ss.getRange(i+2,2).setValue(objJSON.features[i]['properties']['text']);
          ss.getRange(i+2,3).setValue(objJSON.features[i]['properties']['id']);
        }
      }
      else if (responseCode !== 200){
        Browser.msgBox(responseContent);
    } 
    }
}


MAHALLE LİSTESİ için script;

JavaScript:
function getMAHALLE_Liste() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    ss.getRange('A2:C').clear()
    var ui = SpreadsheetApp.getUi();
    var ILCE_ID = ui.prompt("İLÇE Kodunu buraya girin...").getResponseText();
    if (ILCE_ID !=='') {
      var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/mahalleListe/' + ILCE_ID ;
      
      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);
        for (var i=0;i<objJSON.features.length;i++) {
          ss.getRange(i+2,1).setValue(i+1);
          ss.getRange(i+2,2).setValue(objJSON.features[i]['properties']['text']);
          ss.getRange(i+2,3).setValue(objJSON.features[i]['properties']['id']);
        }
      }
      else if (responseCode !== 200){
        Browser.msgBox(responseContent);
    } 
    }
}



.
 
Son düzenleme:
@Haluk ustam yukarıdaki işlemleri tek bir script üzerinden döngüyle il'e ait tüm ilçeler/mahalleler şeklinde düzenleyebilir misiniz?
 
Geri
Üst