• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Проложить Маршрут (офлайн) Delphi

triamera977

Homo habilis
Принятый Кодер
Регистрация
27 Апр 2015
Сообщения
79
Баллы
60
Всем привет! Подскажите люди добрые, не кто не делал что-то подобное, типо гугл карты, интергис, 2гис, чтоб можно было проложить маршрут через delphi?
 
Для Androida?
 
На ПК.
 
1. Указание центра, формата и вида карты
staticmap

Код:
uses
  ..., Google.Maps, System.UITypes;
procedure TfrmMain.Button1Click(Sender: TObject);
var
  Map: TGoogleMap;
begin
  Map:=TGoogleMap.Create;
  try
    //формат карты - 32-битный PNG
    Map.MapFormat:=mfPNG32;
    //вид карты - спутник
    Map.MapType:=mtSatellite;
    //центр карты
    Map.Center.Latitude:=55.0269;
    Map.Center.Longitude:=73.3029;
    //добавляем одну метку
    Map.Markers.Add(TMapMarker.Create(55.0269,73.3029));
    Map.Markers.Last.Text:='1';
    //выводим карту в TWebBrowser
    WebBrowser1.Navigate2(Map.URL);
  finally
    Map.Free;
  end;
end;
2. Указание нескольких маркеров разных цветов и размеров
Код:
 Map:=TGoogleMap.Create;
  try
    Map.MapFormat:=mfPNG32;
    //вид карты - карта дорог
    Map.MapType:=mtRoadmap;
    //маркер красного цвета, нормального размера
    Map.Markers.Add(TMapMarker.Create(55.0269,73.3029));
    Map.Markers.Last.Color:=clRed;
    Map.Markers.Last.Size:=msMid;
    Map.Markers.Last.Text:='1';
    //маркер зеленого цвета, нормального размера
    Map.Markers.Add(TMapMarker.Create(55.0270,73.3029));
    Map.Markers.Last.Color:=clGreen;
    Map.Markers.Last.Size:=msMid;
    Map.Markers.Last.Text:='2';
    //маркер синего цвета, маленького размера (текст не отобразится)
    Map.Markers.Add(TMapMarker.Create(55.0270,73.3033));
    Map.Markers.Last.Color:=clBlue;
    Map.Markers.Last.Size:=msSmall;
    Map.Markers.Last.Text:='3';
    //маркер желтого цвета, самого маленького размера (текст не отобразится)
    Map.Markers.Add(TMapMarker.Create(55.0269,73.3033));
    Map.Markers.Last.Color:=clYellow;
    Map.Markers.Last.Size:=msTiny;
    Map.Markers.Last.Text:='4';
    WebBrowser1.Navigate2(Map.URL);
  finally
    Map.Free;
  end;
staticmap

3. Указание путей
Прокладываем путь через все четыре маркера из предыдущего примера (сами маркеры показывать не будем):
Код:
Map:=TGoogleMap.Create;
  try
    Map.MapFormat:=mfPNG32;
    Map.MapType:=mtRoadmap;
    //добавляем новый путь
    Map.Paths.Add(TMapPath.Create);
    //значение альфа-канала (от 0 - 100% прозрачность до 255 - непрозрачная линия)
    Map.Paths.Last.ColorAlpha:=255;
    //цвет линии
    Map.Paths.Last.Color:=TColorRec.Blue;
    //толщина линии
    Map.Paths.Last.Weight:=2;
    //добавляем точки пути
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3029));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0270,73.3029));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0270,73.3033));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3033));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3029));
    WebBrowser1.Navigate2(Map.URL);
  finally
    Map.Free;
  end;
staticmap

3.1 Заливка области
Всю площадь, построенную в предыдущем примере, можно залить каким-нибудь цветом, например так:
Код:
 Map:=TGoogleMap.Create;
  try
    Map.Scale:=2;//увеличиваем количество пикселей в 2 раза
    Map.MapFormat:=mfPNG32;
    //спутниковая съемка
    Map.MapType:=mtSatellite;
    Map.Sensor:=True;
    Map.Center.Latitude:=55.0269;
    Map.Center.Longitude:=73.3029;
    Map.Paths.Add(TMapPath.Create);
    //добавили цвет заливки
    Map.Paths.Last.FillColor:=TColorRec.Yellow;
    //прозрачность заливки (от 0 до 255)
    Map.Paths.Last.FillAlpha:=90;
    Map.Paths.Last.ColorAlpha:=255;
    Map.Paths.Last.Color:=TColorRec.Blue;
    Map.Paths.Last.Weight:=2;
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3029));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0270,73.3029));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0270,73.3033));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3033));
    Map.Paths.Last.PathData.Add(TMapPoint.Create(55.0269,73.3029));
    WebBrowser1.Navigate2(Map.URL);
  finally
    Map.Free;
  end;
staticmap

Ну и, конечно, никто не запрещает использовать на карте и маркеры и пути. Код уже приводить не буду, просто соберу все примеры в одну карту:
staticmap


Вот, пожалуй, все возможности, какие поддерживает модуль:
 

Вложения

Спасибо! Щас посмотрим что с этим можно сделать
 
Sascha, тебе тоже спасибо!
 
Как я понимаю без интернета не будет работать карта?
 
жаль :( , программа которая щас пишется будет стоять на компах без доступа во внешний мир
 
тогда тебе нужно всю карту скачать и подключить тогда прога будет грамоская, типа как навигатор
 
в TImage вставить картинку карты мира или использовать какое-нить MapInfo
 
http://dps.dzzzr.ru/maps.html вот к примеру таких карт и по координатам выводишь
 
Вверх Снизу