SASGIS

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

lonlatarr="ADDdJAaB...b8EQAAwX" ...

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение bakstag » 07 сен 2009, 20:57

Камрады, думаю, нужен редактор полигонов.
Можно консольный, который бы делал простейшие операции над ними: объединение; пересечение и разность.

блоб -> в массив точек
анализ мат средствами (:-)) пересечений двух полигонов
итоговый массив точек
обратно в блоб.

если сподвигнусь, будет на яве.
bakstag
Новичок
 
Сообщения: 5
Зарегистрирован: 07 сен 2009, 20:50
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение n711 » 24 сен 2009, 16:00

Как узнать что содержит срока lonlatarr и закодировать ее средствами пользователя, а не программиста?
n711
Новичок
 
Сообщения: 14
Зарегистрирован: 30 май 2009, 07:06
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение gorec » 24 дек 2009, 12:20

Не думал, что это кроме меня кому-то интересно, но вот:
>...
>К сожалению мои познания в ПХП далеки от совершенства.
>Но меня интересует собственно только сам принцип преобразования чисел.
>К примеру точка с координатами (0,0) преобразуется в lonlatarr="AAAAAAAAAAAAgAAAAAAAAAAAAABQ0UYA"
>(1,1) соответственно AAAAAAAAAID/PwAAAAAAAACA/z9Q0UYA
>(2,2) AAAAAAAAAIAAQAAAAAAAAACAAEBQ0UYA
>(-1,-1) AAAAAAAAAID/vwAAAAAAAACA/79Q0UYA
>Т.е. на каждое число 16 символов, 32 символа на координату.
>Насколько я понял из кода, 8 символов на целую часть, 8 - на дробную. Правильно ли это?
>Если это возможно, то в двух словах.
>Спасибо

подумалось, что кому-то еще будет интересно... а форум - это очень хорошее хранилище истории и всяческих сведений...
основная сложность в том, что представление чисел 80-ти битное а в php не было на тот момент ф-ции работающей с числами подобной точности вот и пришлось написать что-то подобное (однако хочу предупредить - там есть несколько ошибок которые сильно исказят результаты с координатами близкими к "0" и с 1-й цифрой перед запятой для моих координат 47 и 52 это не важно поэтому не обращаю внимания :-))
с символами не совсем правильно - это обычная упаковка в 7-бит (Base64) двоичного представления.
" 8 символов на целую часть, 8 - на дробную" - не так просто


про 80-ти битовое представление чисел с плавающей точкой
вот тут почитать можно http://www.wasm.ru/article.php?article=edfpu01
и вот здесь http://sources.ru/pascal/datatype/floatype.htm


когда-то раньше sasgis использовала только текстовое представление координат и, существенно более портабельный и удобный, KML-формат... если в лом ковыряться с тем что есть сейчас - можете поискать старые версии sasgis...
gorec
Новичок
 
Сообщения: 23
Зарегистрирован: 22 окт 2008, 10:30
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение mombassa » 25 дек 2009, 05:49

Сформулирую проблему.
Есть полигоны, точнее массив координат вершин полигонов.
Нужно сформировать marks.sml, точнее поле lonlatarr.
Рисовать полигоны вручную на карте проблематично, т.к.
во-первых, этих полигонов много,
во-вторых, нужна точность координат, вручную ее не добиться,
в-третьих, координаты периодически меняются.
Какие есть идеи по решению этой проблемы?
mombassa
Новичок
 
Сообщения: 3
Зарегистрирован: 27 май 2009, 05:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение workdao » 25 дек 2009, 13:05

генерировать KML затем импортировать в саспланет
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Аватара пользователя
workdao
Специалист
 
Сообщения: 707
ICQ: 418481373
Зарегистрирован: 14 дек 2008, 00:44
Откуда: Курган
Благодарил (а): 3 раз.
Поблагодарили: 35 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение Snake » 20 апр 2010, 23:14

У меня есть массив объектов с координатами. Вводить ручками их всех это слишком долго и нудно.
Хочу автоматизировать, но никак не получается сформировать поле lonlatarr.
Где-то читал, что его можно вообще опускать. Но когда редактирую уже созданный marks.sml, когда оставляю поле пустым или его удаляю, метка пропадает вообще с карты, но в списке меток есть. При попытке перейти на такую метку (перейти к выбранному объекту) программа вылетает с ошибкой.

Пробовал закодировать в Base64, но что-то не то получается.
Если можно пример на С++. Хотя хоть какой-то пример.
Да хотя бы алгоритм, как из 4 полей получить одно поле.

ПС
Тут вдогонку подумалось.
Может не в том формате сохраняю (win-1251)?
Snake
Новичок
 
Сообщения: 6
Зарегистрирован: 20 апр 2010, 22:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение vdemidov » 20 апр 2010, 23:32

Snake писал(а):Да хотя бы алгоритм, как из 4 полей получить одно поле.

Да хрен его знает как датасет его сериализует. Это просто блоб поле, в которое запихивается массив Extened-ов.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение Snake » 21 апр 2010, 11:22

А разработчики сюда заходят?
Если да, то не сложно было бы выложить кусочек из исходника самого SAS.Планет, где происходит формирование lonlatarr поля?
Snake
Новичок
 
Сообщения: 6
Зарегистрирован: 20 апр 2010, 22:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение Snake » 14 окт 2010, 18:50

Опять встала проблема генерации lonlatarr, а я ее так и не решил, никак не могу преобразовать координаты для этого "хитрого" поля.
vdemidov писал(а):
Snake писал(а):Да хотя бы алгоритм, как из 4 полей получить одно поле.

Да хрен его знает как датасет его сериализует. Это просто блоб поле, в которое запихивается массив Extened-ов.

т.е. у Вас есть TExtendedPoint и его простой функцией типа
FileWrite(файл,указатель на TExtendedPoint, 32 байта);
так?
или все таки сначала содержимое TExtendedPoint кодируем Base64 и только потом результат записываем?

Кто-то может подсказать, как это реализовать в Си или хотяб алгоритм чего зачем и откуда? А то я уже закипаю, скоро крышу начнет срывать.
Snake
Новичок
 
Сообщения: 6
Зарегистрирован: 20 апр 2010, 22:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...

Сообщение vdemidov » 14 окт 2010, 18:52

Snake писал(а):FileWrite(файл,указатель на TExtendedPoint, 32 байта);

Именно, только не 32 байта, а 24 если я ничего не путаю.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

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

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