Jump to content


Photo

Google Maps geocoding


  • Please log in to reply
5 replies to this topic

#1 Belikov Maksim

Belikov Maksim

    Active Member

  • Members
  • PipPipPip
  • 58 posts

Posted 13 December 2014 - 07:45 PM

Коллеги, кто-нибудь использовал пример Google Maps из примеров ?

Никак не могу сделать geocoding

Более того, после такой процедуры

 

  UniSession.AddJS('if (typeof googleMap=="object") {googleMap.setCenter(new google.maps.LatLng('+
                        StringReplace(Format('%2.4f', [Lat]), ',', '.', [rfReplaceAll])+','+
                        StringReplace(Format('%2.4f', [Long]), ',', '.', [rfReplaceAll])+
                      ')); googleMap.setZoom(16); scaleControl: true;  draggable: true; navigationControl: true}');
 

 

Отключается пользовательский скроллинг и перемещение карты.


  • 0

#2 Stas

Stas

    Advanced Member

  • uniGUI Subscriber
  • PipPipPipPip
  • 173 posts
  • LocationKiev Ukraine

Posted 14 December 2014 - 09:21 PM

Добрый вечер, какая версия унигуи ?

Причем даже без проверки видны ошибки в синтаксисе .

Это точно правильно ?

scaleControl: true;  draggable: true; navigationControl: true


  • 0

#3 Belikov Maksim

Belikov Maksim

    Active Member

  • Members
  • PipPipPip
  • 58 posts

Posted 15 December 2014 - 07:38 PM

Добрый вечер, какая версия унигуи ?

Причем даже без проверки видны ошибки в синтаксисе .

Это точно правильно ?

scaleControl: true;  draggable: true; navigationControl: true

в бесконечных пробах и ошибках я уже перешел на компонент

http://forums.unigui...maps-geocoding/

 

кладу на фрейм а не на форму, отображается пустая страница, при F5 карта отображается, но не работает геокодинг

замкнутый круг


  • 0

#4 Stas

Stas

    Advanced Member

  • uniGUI Subscriber
  • PipPipPipPip
  • 173 posts
  • LocationKiev Ukraine

Posted 15 December 2014 - 08:36 PM

В целом геокодинг можно использовать, левый, скажем от Яндекса, он даже проще.

Я например загружаю со стороны сервера, а потом передаю на клиент.


  • 0

#5 Belikov Maksim

Belikov Maksim

    Active Member

  • Members
  • PipPipPip
  • 58 posts

Posted 16 December 2014 - 08:45 AM

В целом геокодинг можно использовать, левый, скажем от Яндекса, он даже проще.

Я например загружаю со стороны сервера, а потом передаю на клиент.

Не поделитесь примером?


  • 0

#6 Stas

Stas

    Advanced Member

  • uniGUI Subscriber
  • PipPipPipPip
  • 173 posts
  • LocationKiev Ukraine

Posted 16 December 2014 - 09:25 PM

Пример очень сложно выдернуть из контекста.

Но мысль следующая 

Тут изложено апи геокодирования

http://api.yandex.co...nput_params.xml

 

1)С помощью сервера

Используется любой метод закачки http

Можно  использовать Indy, Synapce. и.т.д

Возвращать приятнее json он меньше по размерам и легче парсится  вручную.

Далее получаем координаты и с помощью Гугльмаповского компонента от Лёмы определяем маркер в заданную точку.

2)С помощью клиента

можно использовать jquery или стандартным ajax запросом

Далее опять вытягиваются координаты и маркер посылается в заданную точку с помощью api гугла.

Это  для сервера на FastScript

procedure  SearchAdressEx(Adress:String;var LatS,LonS:String);
var LatS,Lons,S,SQ:String;
    i:integer;
    M:TStringStream;
    Lat,LOn:Double;
    R:Integer;
begin
M:=TStringStream.Create;
try
S:='http://geocode-maps.yandex.ru/1.x/?geocode='+Adress+'&lang=uk-UA&format=json&results=1';
HttpGetFile(S,M); //Тут мы закачиваем файл
S:=M.DataString;
if pos('"pos":',S)<>0
then
begin
S:=copy(S,pos('"pos":',S)+length('"pos":')+1,length(S));
S:=copy(S,1,pos('"',S)-1);
LatS:=ExtractWord(2,S,' ');
LonS:=ExtractWord(1,S,' ');
end;
finally
M.Free;
end;
end;


  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users