API статичних карт Google - Програмні продукти

Статичні карти Google є звичайним бітмапом. Така карта не має жодних інтерактивних можливостей щодо взаємодії з користувачем. Позитивним моментом є те, що не потрібно використовувати TWebBrowser – джерело постійного пожирання оперативної пам'яті та роздування розміру програми.

Інформація щодо використання статичних карт API доступна українською мовою за цим посиланням http://code.google.com/intl/ru-RU/apis/maps/documentation/staticmaps/. Рекомендується обов'язково прочитати після статті.

Я побудую простий додаток, що відображає на карті задану широту і довготу точку з необхідним масштабом.

Для отримання картинки з карткою потрібно зробити такі дії:

  1. Знати координати відображуваної точки та масштаб карти навколо точки. Для цього намалюємо найпростіший інтерфейс користувача.
  2. Надіслати http запит серверу у певному форматі, що містить параметри картинки та отримати відповідь від сервера у вигляді блоку бінарних даних.
  3. Перетворити дані в прийнятий Delphi графічний формат.
  4. Намалювати картинку на формі.

Дія 1 я розписувати не буду, завантажуємо приклад (Delphi 7), відкриваємо та фтикаємо в Delphi IDE.

Дія 2. Як випливає з інформації гугла (див. посилання), формат запиту має такий вигляд: http://maps.google.com/staticmap?parameters , де parameters - пари = розділені знаком "&". Загалом, звичайний вид передачі параметрів url. Для запиту нам знадобляться такі параметри:

Тобто, всі параметри, які надає гугль. Я не розписуватиму їх, за назвою параметрів зрозуміло, за що відповідає кожен параметр. Для докладного вивчення рекомендую першоджерело. Обмежусь рядком дляфункції Format з вихідних джерел:

Зверну увагу на три моменти:

  1. Координати приймаються у форматі "значення з плаваючою точкою" не більше 6-ти знаків після точки. Значення задаються у десяткових частках градуса. Для перекладу із формату секунд згадуємо, скільки секунд за хвилини.
  2. Google запевняє, що максимальний розмір зображення 512х512. Досвідченим шляхом обчислено, що максимальний розмір 640×640.
  3. З ключем карти ситуація не зовсім ясна. Я не використовував ключ, який отримує Google, т.к. ключ генерується для конкретного сайту, а картка відображається у додатку. Я взяв ключ із прикладу на сайті. Поки він працює, а що буде далі, я не знаю.

На виході маємо заповнений клас TOleGraphic у разі успішного з'єднання або порожній покажчик у разі відмови сервера або відсутності зв'язку із сервером.

На цьому дії 2 та 3 завершені. Бітмап у нас на руках, малюємо його на формі хто як уміє.

А всі питання – до гугла, він знає ВСЕ!

І для тих, хто в танку - для правильної роботи прикладу потрібне активне робоче підключення до інтернету.

Результат виглядає так:

програмні

Як епілог цитата з баш.орга:

З форуму, гілка про Google Earth: ххх: Привіт, учасники форуму! Не могли б ви дати координати Google Earth військових портів у США?