Nó trả về dữ liệu vĩ độ/kinh độ bằng cách sử dụng "," thay vì ". " dấu phân cách
Tôi không thể làm gì nhiều với các định dạng trả về, nhưng một người dùng đã báo cáo rằng việc thêm công thức mảng sau vào các cột kinh độ/vĩ độ sẽ thay đổi dấu phân cách cho chúng. =ARRAYFORMULA(SUBSTITUTE(C2:C;",";"."))
Gần đây, tôi đã phát hiện ra một công cụ mạnh mẽ từ kênh Youtube Google Developers tuyệt vời. Tập lệnh Google Apps. Điều này sẽ cho phép bạn tích hợp Google Apps và API một cách dễ dàng. Trong bài đăng này, tôi sẽ trình bày một ví dụ về tích hợp giữa Google Sheets và Google Geocoding API
Tôi đã thử viết một ví dụ đơn giản nhưng mạnh mẽ, thử nghiệm một trường hợp sử dụng chắc chắn sẽ hữu ích cho tôi trong tương lai. mã hóa địa lý một danh sách các địa chỉ được lấy từ bảng tính
Mục lục
1. Giới thiệu
Nếu bạn chưa quen với Google App Script (giống như tôi) ở đây, bạn có thể xem hướng dẫn bằng video giới thiệu
Một hướng dẫn khác giải thích cách tích hợp Google Trang tính với Google Maps và đặc biệt là với Google Geocode API
Tôi đã bắt đầu từ đó và tôi đã tạo một tập lệnh để mã hóa địa lý (nghĩa là chuyển từ địa chỉ có thể đọc được của con người sang tọa độ địa lý của vị trí) một danh sách các địa chỉ được viết trong Google Trang tính
2. Tích hợp Google Sheets với Google Geocoding API
Để kiểm tra tập lệnh, chỉ cần tạo Bảng tính mới trong Google Drive và ghi danh sách địa chỉ vào cột đầu tiên, như thế này
Một bảng tính thử nghiệm của GoogleSau đó nhấp vào Tools > Script editor
và viết mã này trong trình chỉnh sửa
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 0; i < cells.length; i++) {
var address = cells[i][0];
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
var lat = lng = 0;
if (res) {
lat = res.geometry.location.lat;
lng = res.geometry.location.lng;
}
latitudes.push([lat]);
longitudes.push([lng]);
}
sheet.getRange('B1')
.offset(0, 0, latitudes.length)
.setValues(latitudes);
sheet.getRange('C1')
.offset(0, 0, longitudes.length)
.setValues(longitudes);
}
Nhấp vào chạy, lưu tập lệnh có tên, cho phép tập lệnh ghi dữ liệu trên tài liệu của bạn và ta-dah, địa chỉ của bạn sẽ được mã hóa địa lý và tọa độ sẽ xuất hiện trong cột thứ hai và thứ ba
Địa chỉ đã được mã hóa địa lýBạn cũng có thể lưu dữ liệu khác đến từ Bộ mã hóa địa lý trong trang tính. Ví dụ: ở đây tôi cũng lưu địa chỉ được định dạng hoàn chỉnh do Bộ mã hóa địa lý trả về trong cột thứ tư
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
var formatted_addresses = [];
for (var i = 0; i < cells.length; i++) {
var address = cells[i][0];
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
var lat = lng = 0;
var formatted_address = '';
if (res) {
lat = res.geometry.location.lat;
lng = res.geometry.location.lng;
formatted_address = res.formatted_address;
}
latitudes.push([lat]);
longitudes.push([lng]);
formatted_addresses.push([formatted_address]);
}
sheet.getRange('B1')
.offset(0, 0, latitudes.length)
.setValues(latitudes);
sheet.getRange('C1')
.offset(0, 0, longitudes.length)
.setValues(longitudes);
sheet.getRange('D1')
.offset(0, 0, formatted_addresses.length)
.setValues(formatted_addresses);
}
Vui lòng tham khảo để biết những dữ liệu nào khác có trong đối tượng được trả về bởi Geocoder
3. Sự kết luận
Trong hướng dẫn này, bạn đã học cách sử dụng API mã hóa địa lý của Google để tự động mã hóa địa chỉ địa chỉ trên tệp Google Trang tính
Google Apps Script có thể làm được nhiều hơn là tích hợp Google Sheets và Google Geocoding API. Trong tài liệu, bạn sẽ tìm thấy tất cả các dịch vụ có thể được sử dụng trong tập lệnh của mình. Bạn có thể tích hợp GMail, Lịch Google, Tài liệu, Drive, Biểu mẫu, v.v. Bạn cũng có thể kết nối với các API công khai bên ngoài từ tập lệnh của mình