ibere
Altın Üye
- Katılım
- 31 Mart 2018
- Mesajlar
- 129
- Excel Vers. ve Dili
- Office 365
- Altın Üyelik Bitiş Tarihi
- 21-04-2027
Teşekkürler Haluk beyEkli MS Excel dosyasını kullanabilirsiniz....
.
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Teşekkürler Haluk beyEkli MS Excel dosyasını kullanabilirsiniz....
.
Sayın @Haluk ustam. Teşekkür ederiz.Ekli MS Excel dosyasını kullanabilirsiniz....
.
Sayın Haluk Hocam ;İşin ilginç tarafı, aşağıdaki resimde olduğu gibi İlçeleri bazen sorunsuz ("ı", "i" karmaşası olmadan) getiriyor....
Ekli dosyayı görüntüle 239038
.
Hangi İL?Sayın Haluk Hocam ;
Benim bu scripti kullanma becerim maalesef yoktur.
İl-İlçe-Mahalle ve Mahalle kodları olan bir listeyi paylaşmanız mümkün olurmu ?
Saygılar iyi geceler
@Haluk ustam,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.
.
function getData_2() {
var myArr=["MAHALLE ID","ADA", "PARSEL","İL","İLÇE","MAHALLE",
"MEVKİİ","ZEMİN DURUM","NİTELİK","ALAN","PAFTA"];
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
ss.getRange('A1:K1').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 ada = ss.getRange('B'+ iRow ).getValue() + 0;
var parsel = ss.getRange('C'+ iRow ).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);
// objJSON elemanlari >>> "type", "Feature", "geometry", "properties"
// Aradigimiz veriler "properties" nesnesi icinde
ss.getRange(j+2,4).setValue(objJSON.properties['ilAd']);
ss.getRange(j+2,5).setValue(objJSON.properties['ilceAd']);
ss.getRange(j+2,6).setValue(objJSON.properties['mahalleAd']);
ss.getRange(j+2,7).setValue(objJSON.properties['mevkii']);
ss.getRange(j+2,8).setValue(objJSON.properties['zeminKmdurum']);
ss.getRange(j+2,9).setValue(objJSON.properties['nitelik']);
ss.getRange(j+2,10).setValue(objJSON.properties['alan']);
ss.getRange(j+2,11).setValue(objJSON.properties['pafta']);
}
else if (responseCode !== 200){
ss.getRange(j+2,4).setValue(responseContent);
}
}
}
Daha önce eklediğiniz dosya normal excel olaraktı-Kod, Google Script (JavaScript gibi birşey... diyelim) ile yazıldığı için VBA ile çalışmaz. VBA'de yeniden tasarlayıp, yazmak gerekir.
-VBA koruma yöntemi için @Zeki Gürsoy 'a müracaat edebilirsiniz. Bu konuda kendisinin geliştirdiği ücretli bir programı var.
.
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Güneykent Mahallesi 5263-parsel</name>
<ExtendedData>
Siz Google Script ile ilgili mesajı referans gösterince, ben de oradaki script'i revize etmiştim. MS Excel ile hazırladığım dosyayı da, Mahalle ID'leri için hazırladım diye düşünmüştüm ama o da bununla ilgiliymiş. Anlayacağınız, konuyu karıştırmışım biraz....Daha önce eklediğiniz dosya normal excel olaraktı