Камрады, думаю, нужен редактор полигонов.
Можно консольный, который бы делал простейшие операции над ними: объединение; пересечение и разность.
блоб -> в массив точек
анализ мат средствами (:-)) пересечений двух полигонов
итоговый массив точек
обратно в блоб.
если сподвигнусь, будет на яве.
lonlatarr="ADDdJAaB...b8EQAAwX" ...
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Как узнать что содержит срока lonlatarr и закодировать ее средствами пользователя, а не программиста?
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Не думал, что это кроме меня кому-то интересно, но вот:
>...
>К сожалению мои познания в ПХП далеки от совершенства.
>Но меня интересует собственно только сам принцип преобразования чисел.
>К примеру точка с координатами (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...
>...
>К сожалению мои познания в ПХП далеки от совершенства.
>Но меня интересует собственно только сам принцип преобразования чисел.
>К примеру точка с координатами (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...
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Сформулирую проблему.
Есть полигоны, точнее массив координат вершин полигонов.
Нужно сформировать marks.sml, точнее поле lonlatarr.
Рисовать полигоны вручную на карте проблематично, т.к.
во-первых, этих полигонов много,
во-вторых, нужна точность координат, вручную ее не добиться,
в-третьих, координаты периодически меняются.
Какие есть идеи по решению этой проблемы?
Есть полигоны, точнее массив координат вершин полигонов.
Нужно сформировать marks.sml, точнее поле lonlatarr.
Рисовать полигоны вручную на карте проблематично, т.к.
во-первых, этих полигонов много,
во-вторых, нужна точность координат, вручную ее не добиться,
в-третьих, координаты периодически меняются.
Какие есть идеи по решению этой проблемы?
- workdao
- Специалист
- Сообщения: 707
- Зарегистрирован: 14 дек 2008, 00:44
- Откуда: Курган
- Благодарил (а): 3 раза
- Поблагодарили: 40 раз
- Контактная информация:
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
генерировать KML затем импортировать в саспланет
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
У меня есть массив объектов с координатами. Вводить ручками их всех это слишком долго и нудно.
Хочу автоматизировать, но никак не получается сформировать поле lonlatarr.
Где-то читал, что его можно вообще опускать. Но когда редактирую уже созданный marks.sml, когда оставляю поле пустым или его удаляю, метка пропадает вообще с карты, но в списке меток есть. При попытке перейти на такую метку (перейти к выбранному объекту) программа вылетает с ошибкой.
Пробовал закодировать в Base64, но что-то не то получается.
Если можно пример на С++. Хотя хоть какой-то пример.
Да хотя бы алгоритм, как из 4 полей получить одно поле.
ПС
Тут вдогонку подумалось.
Может не в том формате сохраняю (win-1251)?
Хочу автоматизировать, но никак не получается сформировать поле lonlatarr.
Где-то читал, что его можно вообще опускать. Но когда редактирую уже созданный marks.sml, когда оставляю поле пустым или его удаляю, метка пропадает вообще с карты, но в списке меток есть. При попытке перейти на такую метку (перейти к выбранному объекту) программа вылетает с ошибкой.
Пробовал закодировать в Base64, но что-то не то получается.
Если можно пример на С++. Хотя хоть какой-то пример.
Да хотя бы алгоритм, как из 4 полей получить одно поле.
ПС
Тут вдогонку подумалось.
Может не в том формате сохраняю (win-1251)?
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Snake писал(а):Да хотя бы алгоритм, как из 4 полей получить одно поле.
Да хрен его знает как датасет его сериализует. Это просто блоб поле, в которое запихивается массив Extened-ов.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
А разработчики сюда заходят?
Если да, то не сложно было бы выложить кусочек из исходника самого SAS.Планет, где происходит формирование lonlatarr поля?
Если да, то не сложно было бы выложить кусочек из исходника самого SAS.Планет, где происходит формирование lonlatarr поля?
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Опять встала проблема генерации lonlatarr, а я ее так и не решил, никак не могу преобразовать координаты для этого "хитрого" поля.
т.е. у Вас есть TExtendedPoint и его простой функцией типа
FileWrite(файл,указатель на TExtendedPoint, 32 байта);
так?
или все таки сначала содержимое TExtendedPoint кодируем Base64 и только потом результат записываем?
Кто-то может подсказать, как это реализовать в Си или хотяб алгоритм чего зачем и откуда? А то я уже закипаю, скоро крышу начнет срывать.
vdemidov писал(а):Snake писал(а):Да хотя бы алгоритм, как из 4 полей получить одно поле.
Да хрен его знает как датасет его сериализует. Это просто блоб поле, в которое запихивается массив Extened-ов.
т.е. у Вас есть TExtendedPoint и его простой функцией типа
FileWrite(файл,указатель на TExtendedPoint, 32 байта);
так?
или все таки сначала содержимое TExtendedPoint кодируем Base64 и только потом результат записываем?
Кто-то может подсказать, как это реализовать в Си или хотяб алгоритм чего зачем и откуда? А то я уже закипаю, скоро крышу начнет срывать.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: lonlatarr="ADDdJAaB...b8EQAAwX" ...
Snake писал(а):FileWrite(файл,указатель на TExtendedPoint, 32 байта);
Именно, только не 32 байта, а 24 если я ничего не путаю.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.