Как да Геокодирате Адреси в Google Sheets: 4 Метода, Които Работят
Как да геокодирате в Google Sheets: CSV, формула =GEOCODE(), пакетен Apps Script и обратно геокодиране. 100 безплатни реда на ден.
Ако имате Google Sheets, пълен с адреси, и се нуждаете от координати за географска ширина/дължина, попаднали сте на правилното място. Независимо дали картографирате клиентски локации, планирате маршрути за доставка или създавате локатор на магазини, геокодирането в Google Sheets е една от най-често срещаните задачи с данни, която никой не ви учи как да правите правилно.
Проблемът? Google Sheets няма вградена функция за геокодиране. Няма формула =GEOCODE(), която да ви чака. Но има четири практични метода за постигане на целта — от нулев код до напълно автоматизирана пакетна обработка.
В това ръководство ви представям всеки подход за геокодиране на адреси в Google Sheets — от прост процес на копиране и поставяне до персонализирани функции в Apps Script. Всички примери с код са реални и готови за използване с платформата CSV2GEO.
Да започваме.
Кой се Нуждае от Геокодиране на Адреси в Google Sheets?
Преди да навлезем в методите, ето кой обикновено се нуждае от това:
Маркетингови екипи
Картографиране на клиентски локации за целеви кампании по региони.
Логистика и доставки
Превръщане на адреси за доставка в координати за планиране на маршрути.
Агенции за недвижими имоти
Геокодиране на обяви за интерактивни карти за търсене на имоти.
Изследователи
Анализ на географски данни от анкети или публични регистри.
Електронна търговия
Създаване на локатори на магазини и изчисляване на зони за доставка.
Здравеопазване
Картографиране на пациенти за анализ на достъпност и планиране на заведения.
Общото? Имате адреси в електронна таблица. Нуждаете се от координати. И не искате да плащате на Google 5 лв. за 1 000 търсения.
Метод 1: Без Код — Експорт на CSV, Качване в CSV2GEO, Поставяне
Идеален за: Всеки, който иска координати без да напише нито един ред код.
Това е най-простият подход за геокодиране на електронна таблица. Без API ключ, без скрипт, без техническа конфигурация.
Стъпка 1: Експортирайте Вашия Google Sheets като CSV
Отворете вашия Google Sheets с адресите. Отидете на Файл > Изтегляне > Стойности, разделени със запетая (.csv).
Уверете се, че адресните данни са чисти. Искате колони като улица, град, област, пощенски код и държава — или поне една колона с пълния адрес.
Стъпка 2: Качете в CSV2GEO
Отидете на CSV2GEO и плъзнете CSV файла в зоната за качване. Платформата автоматично разпознава вашите колони:
- Улица — вашата адресна колона
- Град — населено място
- Област — област или регион
- Пощенски код
- Държава — име на държавата или ISO код
Кликнете Обработи и CSV2GEO геокодира всеки ред със своята база от 461М+ адреса в 200+ държави.
Стъпка 3: Изтеглете Резултатите
След обработката изтеглете геокодирания файл. Той ще съдържа всичките ви оригинални колони плюс: географска ширина, географска дължина, форматиран адрес и оценка на точността.
Стъпка 4: Поставете в Google Sheets
Отворете изтегления CSV в Google Sheets (Файл > Импортиране), или просто копирайте колоните за географска ширина и дължина в оригиналната си таблица.
Това е. Без код, без API ключ, без конфигурация. Безплатното геокодиране предлага 100 реда на ден безплатно.
Метод 2: Персонализирана Функция в Apps Script — =GEOCODE(A2)
Идеален за: Потребители, които искат формула директно в таблицата си.
Този метод използва Google Apps Script и API за геокодиране на CSV2GEO, за да създаде персонализирана функция =GEOCODE().
Стъпка 1: Вземете Вашия API Ключ
Отидете на CSV2GEO API Keys и генерирайте безплатен ключ. Безплатният план включва 1 000 API заявки на ден.
Стъпка 2: Отворете Редактора на Apps Script
Във вашия Google Sheets отидете на Разширения > Apps Script.
Стъпка 3: Добавете Функцията за Геокодиране
Изтрийте съществуващия код и поставете следния:
/**
* Геокодира адрес и връща lat, lng
* @param {string} address Адресът за геокодиране
* @param {string} country ISO код на държавата (опционално, напр.: "BG")
* @return {string} "latitude, longitude"
* @customfunction
*/
function GEOCODE(address, country) {
if (!address) return "";
const API_KEY = "ВАШ_API_КЛЮЧ";
const url = "https://api.csv2geo.com/v1/geocode"
+ "?q=" + encodeURIComponent(address)
+ (country ? "&country=" + country : "")
+ "&api_key=" + API_KEY;
const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
const data = JSON.parse(response.getContentText());
if (data.results && data.results.length > 0) {
const loc = data.results[0].location;
return loc.lat + ", " + loc.lng;
}
return "Не е намерено";
}Стъпка 4: Използвайте я във Вашата Таблица
Запазете скрипта (Ctrl+S), след което се върнете в таблицата:
=GEOCODE("бул. Витоша 15, София", "BG")Това връща: 42.6908, 23.3188
Можете също да референцирате клетки:
=GEOCODE(A2, B2)Където колона A съдържа адреса, а B — кода на държавата.
Важна забележка: Персонализираните функции се изпълняват една по една. За 500 реда всеки прави отделна API заявка. За големи обеми използвайте Метод 3.
Метод 3: Пакетно Геокодиране с Меню в Apps Script
Идеален за: Обработка на стотици или хиляди адреси ефективно.
Този метод добавя меню „Геокодиране" към вашата таблица, за да геокодирате цяла колона с едно кликване.
Стъпка 1: Добавете Скрипта
Отворете Разширения > Apps Script и поставете:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Геокодиране')
.addItem('Геокодирай всички адреси', 'geocodeAll')
.addItem('Обратно геокодиране (селекция)', 'reverseGeocodeSelected')
.addToUi();
}
function geocodeAll() {
const API_KEY = "ВАШ_API_КЛЮЧ";
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
for (let row = 2; row <= lastRow; row++) {
if (sheet.getRange(row, 6).getValue()) continue;
const address = sheet.getRange(row, 1).getValue();
const country = sheet.getRange(row, 5).getValue();
if (!address) continue;
const url = "https://api.csv2geo.com/v1/geocode"
+ "?q=" + encodeURIComponent(address)
+ (country ? "&country=" + country : "")
+ "&api_key=" + API_KEY;
try {
const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
const data = JSON.parse(response.getContentText());
if (data.results && data.results.length > 0) {
const r = data.results[0];
sheet.getRange(row, 6).setValue(r.location.lat);
sheet.getRange(row, 7).setValue(r.location.lng);
sheet.getRange(row, 8).setValue(r.accuracy_score);
}
} catch (e) {
sheet.getRange(row, 6).setValue("Грешка: " + e.message);
}
Utilities.sleep(200);
if (row % 50 === 0) {
SpreadsheetApp.getActiveSpreadsheet().toast(
"Обработени " + row + " от " + lastRow, "Геокодиране", 3);
}
}
SpreadsheetApp.getActiveSpreadsheet().toast("Готово!", "Геокодиране");
}Стъпка 2: Организирайте Вашата Таблица
| A (Адрес) | B (Град) | C (Област) | D (ПК) | E (Държава) | F (Ширина) | G (Дължина) | H (Точност) |
|---|---|---|---|---|---|---|---|
| бул. Витоша 15 | София | София-град | 1000 | BG | авто | авто | авто |
Стъпка 3: Стартирайте Геокодера
Презаредете таблицата. Появява се меню „Геокодиране". Кликнете Геокодиране > Геокодирай всички адреси.
Скриптът обработва редовете със забавяне от 200ms. За 500 адреса очаквайте около 2 минути.
Съвет: За повече от 1 000 адреса разпределете на няколко дни или експортирайте като CSV и използвайте пакетното геокодиране.
Метод 4: Обратно Геокодиране в Google Sheets
Идеален за: Когато вече имате географска ширина и дължина и искате адреси.
Това е обратното на директното геокодиране. Имате GPS координати и искате съответния адрес. Това е обратното геокодиране.
Функцията за Обратно Геокодиране
function REVERSE_GEOCODE(lat, lng) {
if (!lat || !lng) return "";
const API_KEY = "ВАШ_API_КЛЮЧ";
const url = "https://api.csv2geo.com/v1/reverse"
+ "?lat=" + lat + "&lng=" + lng + "&api_key=" + API_KEY;
const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
const data = JSON.parse(response.getContentText());
if (data.results && data.results.length > 0) return data.results[0].formatted_address;
return "Не е намерено";
}Използване:
=REVERSE_GEOCODE(42.6908, 23.3188)Връща: бул. Витоша 15, 1000 София, България
Разбиране на Отговора от API
Когато извикате API на CSV2GEO, ето какво получавате:
{
"results": [{
"formatted_address": "бул. Витоша 15, 1000 София, BG",
"location": { "lat": 42.6908, "lng": 23.3188 },
"accuracy": "rooftop",
"accuracy_score": 0.98,
"components": {
"house_number": "15",
"street": "бул. Витоша",
"city": "София",
"state": "София-град",
"postcode": "1000",
"country": "BG"
}
}]
}Полето accuracy_score е ключово. 0.95+ = точност до сграда. 0.7-0.95 = ниво улица. Под 0.7 = точност само до град или пощенски код.
Сравнение: Кой Метод да Изберете?
| Метод | Сложност | Скорост | Идеален за | Безплатен план |
|---|---|---|---|---|
| 1. CSV + CSV2GEO | Никаква | ⭐⭐⭐⭐⭐ | Еднократни задачи | 100 реда/ден |
| 2. =GEOCODE() | Базова | ⭐⭐ | 10-50 реда | 1 000 заявки/ден |
| 3. Пакетно меню | Базова | ⭐⭐⭐⭐ | 100-5 000 реда | 1 000 заявки/ден |
| 4. Обратно геокодиране | Базова | ⭐⭐⭐ | Координати → Адреси | 1 000 заявки/ден |
Моята препоръка: Метод 1 за еднократна нужда. Метод 3 за редовна употреба. Над 10 000 реда използвайте директно пакетното геокодиране.
Съвети и Най-добри Практики
1. Почистете Вашите Адреси
Боклук на входа, боклук на изхода. Преди геокодиране:
- Премахнете интервалите: =TRIM(A2)
- Стандартизирайте съкращенията: "бул." vs "булевард", "ул." vs "улица"
- Включете кодове на държави: BG, DE, US, GB за по-добри резултати
- Комбинирайте частите: =A2 & ", " & B2 & ", " & C2 & " " & D2
2. Винаги Включвайте Държавата
Най-голямото подобрение на точността е да посочите държавата. "бул. Витоша 15" може да съществува на няколко места по света. Добавянето на "BG" разрешава неяснотата мигновено.
3. Пакетна Обработка за Големи Обеми
=GEOCODE() е подходяща за 10-50 реда. Над това използвайте пакетното меню (Метод 3) или експортирайте като CSV към CSV2GEO за пакетно геокодиране. Импортът на файл е 10 пъти по-бърз за големи обеми.
4. Кеширайте Резултатите
Да геокодирате един и същи адрес два пъти е разхищение. Проверете дали координатите вече съществуват:
if (sheet.getRange(row, 6).getValue()) continue;5. Обработвайте Грешките
Някои адреси няма да бъдат геокодирани — правописни грешки, непълни данни. Скриптовете връщат "Не е намерено" или "Грешка", за да можете да ги идентифицирате.
6. Следете Вашата API Консумация
Безплатният план предлага 1 000 заявки на ден. За 5 000 реда разпределете на 5 дни или преминете на по-висок план.
7. API за Автоматизация
За редовно геокодиране изградете автоматизиран работен процес с пълния API за геокодиране. CSV2GEO предлага 19 крайни точки, покриващи директно геокодиране, обратно геокодиране, пакетна обработка, търсене на места и административни граници.
Често Задавани Въпроси
Безплатно ли е геокодирането в Google Sheets?
Да. CSV без код дава 100 безплатни реда/ден. API методите дават 1 000 заявки/ден.
Колко адреса мога да геокодирам?
1 000/ден безплатно. За 50 000+, експортирайте като CSV и използвайте пакетното геокодиране.
Необходим ли е API ключ?
Само за Методи 2, 3 и 4. Метод 1 не изисква нищо — просто качете на CSV2GEO.
Поддържат ли се международни адреси?
Да. CSV2GEO покрива 200+ държави с 461М+ адреса. Включете ISO кода (BG, DE, JP). Вижте нашите ръководства за Австралия или Бразилия.
Каква е точността?
За добре форматирани адреси, точност до сграда за 90%+ от резултатите. accuracy_score (0 до 1) показва увереността. Повече детайли в нашето ръководство конвертиране на адрес в lat/long.
Възможно ли е обратно геокодиране?
Да. Метод 4 по-горе. Също достъпно чрез инструмента за обратно геокодиране без код.
Данните актуализират ли се автоматично?
Не. Координатите са статични стойности. Ако промените адрес, стартирайте отново функцията или скрипта.
Разлика между Google Sheets и Excel?
Google Sheets използва Apps Script (JavaScript), Excel използва VBA. Същата основна логика. Google Sheets е облачен. Excel е по-добър за много големи файлове (1М+ реда). Специално ръководство: геокодиране в Excel.
Започнете да Геокодирате
Качете адресите си в безплатния инструмент за пакетно геокодиране или използвайте скриптовете по-горе в Google Sheets. 100 безплатни реда на ден, без регистрация.
I.A. / CSV2GEO Creator
Свързани Статии
Use our batch geocoding tool to convert thousands of addresses to coordinates in minutes. Start with 100 free addresses.
Try Batch Geocoding Free →