.\Src\MapLayers\WindowLayers\CalcLine\u_MapLayerCalcLineCaptions.pasAlex54 писал(а): В каком модуле это сделано и как туда вывести свой текст ?
Вопросы по исходному коду
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Вопросы по исходному коду
Re: Вопросы по исходному коду
Zed, благодарю за помощь !
Скажите, в каком модуле происходит инициализация карт (парсинг zmp) из каталога maps - из каталогов sas.maps и sas.plus.maps.
По коду даже не могу найти, где производится вызов GetMapsPath.
Скажите, в каком модуле происходит инициализация карт (парсинг zmp) из каталога maps - из каталогов sas.maps и sas.plus.maps.
Код: Выделить всё
FMapsPath := TPathConfig.Create('PrimaryPath', '.\Maps', ABaseConfigPath);
Add(FMapsPath, TConfigSaveLoadStrategyBasicProviderSubItem.Create('PATHtoMAPS'), False, False, False, False);
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду
.\Src\MapType\u_MapTypesMainList.pas
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по исходному коду
Благодарю, так понимаю TMapType - это и есть карта со всеми настройкамиvdemidov писал(а):.\Src\MapType\u_MapTypesMainList.pas
Код: Выделить всё
TMapType.Create(
ALanguageManager,
VZmp,
AMapVersionFactoryList,
AMainMemCacheConfig,
AGlobalCacheConfig,
ATileStorageTypeList,
AGCNotifier,
AAppClosingNotifier,
AInetConfig,
FTileLoadResampler,
FTileGetPrevResampler,
FTileReprojectResampler,
FTileDownloadResampler,
ABitmap32StaticFactory,
AHashFunction,
ADownloadConfig,
ADownloaderThreadConfig,
AContentTypeManager,
ACoordConverterFactory,
AProjectionInfoFactory,
AInvisibleBrowser,
AProjFactory,
VLocalMapConfig,
FPerfCounterList
);
ATileStorageTypeList, AGCNotifier,
FTileLoadResampler, FTileGetPrevResampler, FTileReprojectResampler,
FTileDownloadResampler, AHashFunction, FPerfCounterList. С остальными попробую разобраться...
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду
ATileStorageTypeList - Список доступных типов тайлохранилищ
AGCNotifier - нотифайер сборщика мусора
FTileLoadResampler, FTileGetPrevResampler, FTileReprojectResampler, FTileDownloadResampler - разные алгоритмы ресайза битмапок для разных ситуаций
AHashFunction - хэш функция
FPerfCounterList - счетчики производительности
AGCNotifier - нотифайер сборщика мусора
FTileLoadResampler, FTileGetPrevResampler, FTileReprojectResampler, FTileDownloadResampler - разные алгоритмы ресайза битмапок для разных ситуаций
AHashFunction - хэш функция
FPerfCounterList - счетчики производительности
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по исходному коду
Спасибо, разбираюсь. Скажите, а может программа работать с картами в польском формате (mp) ?
- garl
- Гуру
- Сообщения: 1625
- Зарегистрирован: 16 июл 2008, 14:40
- Откуда: Краснодар, Кубанская столица.
- Благодарил (а): 97 раз
- Поблагодарили: 272 раза
Re: Вопросы по исходному коду
умеет только поиск объектов через гео-кодер (Src\GeoCoder\u_GeoCoderByPolishMap.pas)Alex54 писал(а):Спасибо, разбираюсь. Скажите, а может программа работать с картами в польском формате (mp) ?
Re: Вопросы по исходному коду
Доброго времени!
Скажите пожалуйста, как построить трек в программе, имея GPS-данные в файле KML или просто в динамическом массиве.
Смотрю в сторону слоя -
И нашел класс -
Не могу уловить связь, у Вас очень много классов... Подскажите, как создать слой и нарисовать трек, имея массив точек.
Благодарю Вас!
Скажите пожалуйста, как построить трек в программе, имея GPS-данные в файле KML или просто в динамическом массиве.
Смотрю в сторону слоя -
Код: Выделить всё
VProvider :=
TBitmapLayerProviderChangeableForGpsTrack.Create(
VPerfList,
GState.GUISyncronizedTimerNotifier,
FConfig.LayersConfig.GPSTrackConfig,
GState.Bitmap32StaticFactory,
GState.GpsTrackRecorder
);
Код: Выделить всё
type
TGpsTrackRecorder = class(TConfigDataElementBaseEmptySaveLoad, IGpsTrackRecorder, IGpsTrackRecorderInternal)
private
FDataFile: IPathConfig;
FVectorGeometryLonLatFactory: IGeometryLonLatFactory;
FTrack: ITrackPointsBlocksListStatic;
FLastBlock: ITrackPoitnsBlock;
FPointsInBlockCount: Integer;
FLastPositionOK: Boolean;
procedure _AddPointInternal(const APoint: TGPSTrackPoint);
private
procedure Load;
procedure Save;
private
procedure AddPoint(const APosition: IGPSPosition);
procedure AddEmptyPoint;
procedure ClearTrack;
function IsEmpty: Boolean;
function LastPoints(
const AMaxCount: Integer
): IEnumGPSTrackPoint;
function GetAllPoints: IGeometryLonLatLine;
public
constructor Create(
const AVectorGeometryLonLatFactory: IGeometryLonLatFactory;
const ADataFile: IPathConfig
);
end;
Благодарю Вас!
Re: Вопросы по исходному коду
Частично разобрался )) все есть в методе TGpsTrackRecorder, скажите, как добавить трек на карту (что вызвать, куда передать экземпляр TGpsTrackRecorder, включить "режим отображения трека", как, например, это сделано для линейки) ?
Последний раз редактировалось Alex54 24 мар 2015, 19:04, всего редактировалось 1 раз.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду
IGpsTrackRecorder возвращает итератор последних полученных точек IEnumGPSTrackPoint, который затем передается в создаваемую ренредилку TBitmapLayerProviderForGpsTrack, которая уже и занимается рисованием трека в битмапках. Вам нужно сделать свой аналог класса TBitmapLayerProviderChangeableForGpsTrack, который будет не запрашивать трек, а сам его считывать из файла. Что-то в таком духе. Точнее зависит от того, что же вы хотите получить и зачем.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.