Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  16:02[Войти] | [Зарегистрироваться]

Обсуждение материала
Google Maps API. Геокодирование
Полный текст материала


Другие публикации автора: Максим Мазитов

Цитата или краткий комментарий:

«... Геокодирование - процесс превращения строкового почтового адреса в координаты. А также, обратный процесс. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]6100%
 
  Ничего особенно нового и интересного
[2]00%
 
  Написано неверно (обязательно укажите почему)
[3]00%
 
Всего проголосовали: 6

Оценка стиля изложения

  Все понятно, материал читается легко
[1]480%
 
  Есть неясности в изложении
[2]120%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 5




Смотрите также материалы по темам:
[Сетевые службы и протоколы] [HTTP/HTTPS] [Взаимодействие с ГИС]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 18

08-10-2010 05:18
>>Уважаемые, проект не работает в среде Delphi 2009. Подразумеваю, что из-за проблем с кодировками, сталкивался ли >>кто-нибудь с подобной проблемой? Как это исправить?

Я переводил строку запроса к гуглю так:
  function WideStr2UTF8URLEncode(const WStr:WideString):string;
  var
   UStr:UTF8String;
   i:integer;
  begin
   UStr:=UTF8Encode(WStr);
   result:='';
   if length(UStr)>0 then
     for i:=1 to length(UStr) do
       result:=result+'%'+IntToHex(ord(UStr[i]),2);
  end;


28-06-2010 02:24
сообщение от автора материала
2 ~AQUARIUS~> Ну извините, не копал в эту сторону. Хотя формат и правда удобочитаемее чем XML


27-06-2010 13:32
Статья суперовая, легкая к прочтению и, главное, - пониманию. В целом просто супер. Одно только замечание - по поводу предложения Json внутренний формат Google Map JSON - это "родной" формат представления обьектов JavaScript


28-03-2010 17:02
sry за некропостинг, но лучше поздно, чем никогда :)
параметр "key" в строке, посылаемой google maps api является своеобразным UIN-ом, который можно получить, зарегистрировавшись тут: http://code.google.com/intl/ru/apis/maps/signup.html


23-12-2009 14:51
Уважаемые, проект не работает в среде Delphi 2009. Подразумеваю, что из-за проблем с кодировками, сталкивался ли кто-нибудь с подобной проблемой? Как это исправить?


02-07-2009 06:13
сообщение от автора материала
2mikki43306>
Это слегка из другой оперы. Можно заполнить результирующий поток данными из КЛМ файла, только это ничего не даст. Во-первых, поток в коде чистится, во-вторых, эти данные никуда не передаются. Скрипт на Гугле ничего не знает об этих данных, так что это затея пустая.
Для рисования маршрута на карте КЛМ-файл должен обрабатываться через Жабоаплет GMap2, встроенный в эксплорер. Инфу можно найти у Гугла примерно здесь http://code.google.com/intl/ru/apis/maps/
Это отдельная большая тема по встраиванию интерактивных карт через эксплорер (WebBrowser) в Delphi. Писать такую статью я не готов, очень много инфы и очень много неясностей.

Так что советую просто сделать перечисление маркеров в URL. Читайте доку.


30-06-2009 14:25
Спасибо за статью.
Я попробовал переделать вашу программу под задачу чтения из файла .kml с последующим выводом точек на карту. (можно сказать просто урезал)
Но вместо вывода карты с точками получается чистая карта, подскажите пожалуйста где я ошибся.


// отправка запроса и получение ответа
function GetInetFile(const FileURL:String; Stream:TMemoryStream): boolean;
const
  BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  sAppName: string;
  Utf8FileUrl:UTF8String; // Гугл принимает и отдает UTF8 кодировку!!!
  Headers:String;
begin
  // переводим в принимаемую Гуглем кодировку
  Utf8FileUrl:=AnsiToUtf8(FileURL);
  sAppName:= ExtractFileName(Application.ExeName);
  hSession:= InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
  try
    // рассказывем Гуглю, что русские мы
    Headers:='Accept-Language: ru';
    hURL := InternetOpenURL(hSession,PChar(Utf8FileUrl),PChar(Headers),Length(Headers),0,0);
    try
      Stream.Clear;
      repeat
        InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
        Stream.Write(Buffer,BufferLen);
      until BufferLen = 0;
      Result:=True;
    finally
      InternetCloseHandle(hURL)
    end;
  finally
    InternetCloseHandle(hSession)
  end;
end;

// получение карты со списком точек
function GetMap{(Points:TObjectList)}:TOleGraphic;overload;
var
  FileOnNet: String;
  Stream:TMemoryStream;
  Markers:String;
  i:Integer;
begin
  // создаем поток
  Stream:=TMemoryStream.Create;
  Stream.LoadFromFile('D:\kml.kml');  //данные берем из рабочего для GoogleEarth файла
  try
    // формируем url для запроса
    FileOnNet:='http://maps.google.com/staticmap?size=640x640'
      +'&markers=%s'
      +'&maptype=mobile&key=MAPS_API_KEY';
    FileOnNet:=Format(FileOnNet,[Markers]);
    // получение потока с данными ответа
    if GetInetFile(FileOnNet,Stream) = True then begin
      // создаем графический объект
      Stream.Position:=0;
      Result:=TOleGraphic.Create;
      Result.LoadFromStream(Stream);
    end else
      Result:=nil;
  finally
    Stream.Free;
  end;
end;

//нажатие кнопки Ок
procedure TForm1.bbOkClick(Sender: TObject);
var
  SearchString:String;
  OleGraphic: TOleGraphic;
begin
      // запрос карты
      OleGraphic:=GetMap;
      // рисуем карту
      ImageGeocoding.Picture.Assign(OleGraphic);
      OleGraphic.Free;
end;//procedure



18-05-2009 20:18
инфицирован Trojan.DownLoader.origin
Ерунда, KIS 2009 молчит :)

Хотя один раз он тоже принял у меня разрабатываемую программку на Delphi с двумя кнопками и тремя строчками кода за опасного трояна. Самое интересное, при изменении Left или Top у одной из кнопок exe-шник уже не детектился )))

Проблема решилась за считанные часы, отправкой "вируса" в архиве письмом с темой "Ложное срабатывание" в ЛК. Через 4 часа вышло обновление баз с фиксом

Так что приготовиться к таким неожиданностям стоит каждому

Насчёт статьи: very good. Не планирую работать с гуглокартами, но всё равно подчерпнул полезную инфорпмацию :) Спасибо


16-05-2009 02:42
сообщение от автора материала
В функции GetMap после получения потока пишем

Stream.SaveToFile('FileName.gif')



16-05-2009 02:39
сообщение от автора материала
Внимательно читаем первую статью. Изображение приходит в Gif формате.


15-05-2009 12:08
А как Вы сохраняли карту города в *.JPG (первая вкладка)? Пытаюсь реализовать по нажатии на кнопку, но получаю либо ошибку:
Can only modify an image if it contains a bitmap
либо пустой (0 байт) файл!
В каком формате получается изображение на TImage?
 Alx


15-05-2009 03:10
сообщение от автора материала
2Alx: Это отдельная большая тема. Статические карты не дадут этого. Тут нужно использовать встраивание обычных карт Google в IE. Причем это захватывает знания по Java, JavaScript, DOM IE. У меня есть некий рабочий вариант такой картографии, но не везде я могу объяснить что и почему работает. Хотя работает :) Так что статью писать пока рано...


14-05-2009 10:16
И навигатор! Если не мышью перемещаться по карте, тогда как, хоть с помощью 4-х кнопок это реализовать?
 Alx


14-05-2009 09:44
Статья очень интересная! Спасибо!
Остался вопрос - как отработать клик мышью на карте, чтобы получить эти заветные: xx.xxxxxx !? Да, сначала можно найти нужный город через поиск, ... а как быть по точнее без точного адреса? Как бы с помощью мыши получить координаты точки?
 Alx


13-05-2009 02:40
Ложное срабатывание антивируса — это понятно. Я тоже иногда умудрялся "написать" вирус или что-нибудь "внедрить" в html. Претензий никаких, но предостережение выскажу: использование хоть и открытых библиотек, на которые ругается антивирус, опасно. В Вашем варианте, я думаю, библиотека скачивает из-за защищенного периметра потенциально опасные данные мимо стандартной процедуры. И тут не столько страшно, что что-то ругается на Вашу программу, тут важнее, что кто-то может внедрить в получаемую информацию вредоносный код и с помощью Вашей программы атака будет успешной. В общем это отдельная тема большого разговора…

А Ваши изыскания по использованию html API в частности сервиса Google Map очень интересны. Методика построения запросов даёт правильные навыки, результаты занимательны и дают импульс к дальнейшему изучению…


13-05-2009 01:08
сообщение от автора материала
Нда, DrWeb CureIt именно это и говорит.
Каспер:
13.05.2009 9:58:32    Файл: C:\GoogleStaticMap.Src\GoogleStaticMap.dpr    ok    проверен
13.05.2009 9:58:32    Файл: C:\GoogleStaticMap.Src\GoogleStaticMap.exe    ok    iChecker
13.05.2009 9:58:32    Файл: C:\GoogleStaticMap.Src\GoogleStaticMap.res    ok    проверен
13.05.2009 9:58:32    Файл: C:\GoogleStaticMap.Src\Main.dfm    ok    проверен
13.05.2009 9:58:32    Файл: C:\GoogleStaticMap.Src\Main.pas    ok    проверен
но говорит что опасных объектов не обнаружено
Аваст тоже криминала не видит.
Вы не предполагаете, что Trojan.DownLoader.origin написан на Delphi c использованием тех же функций скачивания данных из инета? Когда я писал софт с использованием клавиатурных ловушек, мне антивирь говорил подобное.
Код открыт и не использует никаких закрытых библиотек. Пожалуй, надо написать Елене Филипповой об удалении ехе файла из архива для успокоения DrWeb. Правда при компиляции он (DrWeb) будет видимо также возмущаться, так что, извиняйте, Константин, не судьба...


13-05-2009 01:00
автору спасибо за интересные статьи ;)

2 Константин Цветков:
обычное false срабатывание антивируса. на вирустотал ругнулся DrWeb, помнится он мне на курсовые с матричными преобразованиями также реагировал, такое бывает, и должен сказать весьма часто. Опять же можете запустить из среды ;)


12-05-2009 23:00
Мнения никакого не будет:
C:\Temp\FTMP000O.2N0\GoogleStaticMap.exe - инфицирован Trojan.DownLoader.origin

Это программа так написана? Или это результат изысканий по API Google?


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Какой месяц идет после марта?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования