SASGIS

Веб-картография и навигация

Marks.sml поле lonlatarr. Как закодировать координаты?

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Marks.sml поле lonlatarr. Как закодировать координаты?

Сообщение mmxland » 13 фев 2013, 06:56

Здравствуйте!

Требуется заполнить поле lonlatarr в Marks.sml для полигона. Пусть координаты вершин будут, например, такие:
(x1: 44.68017200 y1:43.01867800)
(x2: 39.72227100 y2:43.58279500)
(x3: 40.68017200 y3:43.01867800)

Подскажите алгоритм превращения этих координат, в формат SAS.

Знаю, что темы по этому поводу были и не раз, но у меня не получается применить ту информацию ибо там нет конкретики, лишь фрагменты алгоритма...
1. Преобразование втупую из заполненного lonlatarr в Marks.sml по алгоритму BASE64 decode выводит нечитаемое нечто...
2. Фрагмент алгоритма на php выложенного на форуме в ветке viewtopic.php?f=2&t=319 также выводит нечто...

Буду очень признателен за помощь в данной ситуации.
mmxland
Новичок
 
Сообщения: 1
Зарегистрирован: 13 фев 2013, 03:24
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Marks.sml поле lonlatarr. Как закодировать координаты?

Сообщение Tolik » 13 фев 2013, 09:03

mmxland писал(а):1. Преобразование втупую из заполненного lonlatarr в Marks.sml по алгоритму BASE64 decode выводит нечитаемое нечто...

Нечитаемое, потому что бинарный файл. Тем не менее видно, что каждая точка занимает 24 байта: 2 координаты по 10 байт и 4 байта непонятно что :)
Tolik
Гуру
 
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 280 раз.
Поблагодарили: 587 раз.

Re: Marks.sml поле lonlatarr. Как закодировать координаты?

Сообщение zed » 13 фев 2013, 09:41

Tolik писал(а):Тем не менее видно, что каждая точка занимает 24 байта: 2 координаты по 10 байт и 4 байта непонятно что :)

Не непонятно что, а просто мусор. Поскольку тип, в котором хранятся координаты объявлен как:

Код: Выделить всё
type
  TExtendedPoint = record
    X, Y: Extended;
  end;

т.е. без слова packed, а Extended равен 10-ти байтам, то Delphi производит выравнивание памяти до кратности 4-м байтам. Поэтому каждое поле становится по 12 байт, из которых 2 - мусор.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.


Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12