|
как из структуры полигон вытащить координаты точек в виде таблицы? | ☑ | ||
---|---|---|---|---|
0
Ivan_495
22.04.16
✎
14:57
|
Подскажите как проще из струrтуры полигон вытащить координаты точек в виде таблицы?
"POLYGON ((20.5102309726728 54.7257118843514, 20.5102649674551 54.7257099207726, 20.5102612453575 54.7256894025381, 20.5102272692606 54.7256914689476, 20.5102309726728 54.7257118843514))" нужно x y 20.5102309726728 54.7257118843514 20.5102649674551 54.7257099207726 |
|||
1
Timon1405
22.04.16
✎
15:04
|
ВходСтрока = "POLYGON ((20.5102309726728 54.7257118843514, 20.5102649674551 54.7257099207726, 20.5102612453575 54.7256894025381, 20.5102272692606 54.7256914689476, 20.5102309726728 54.7257118843514))";
RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = Истина; //Игнорировать регистр RegExp.Global = Истина; //Поиск всех вхождений шаблона RegExp.MultiLine = Ложь; //Многострочный режим Паттерн = "(\d{1,2}\.\d+)\s+(\d{1,2}\.\d+)"; RegExp.Pattern = Паттерн; МассивСовпадений =RegExp.Execute(ВходСтрока); Для Каждого ЭлементМассива из МассивСовпадений Цикл Икс = ЭлементМассива.SubMatches(0); Игрек = ЭлементМассива.SubMatches(1); Сообщить(""+Икс+" "+Игрек); КонецЦикла дальше сам |
|||
2
Ivan_495
22.04.16
✎
15:10
|
(1) благодарю. круто
|
|||
3
Локи-13
22.04.16
✎
15:17
|
еще можно
СтрРазделить вначале по "," потом по " " |
|||
4
RomanYS
22.04.16
✎
15:28
|
Стр = "POLYGON ((20.5102309726728 54.7257118843514, 20.5102649674551 54.7257099207726, 20.5102612453575 54.7256894025381, 20.5102272692606 54.7256914689476, 20.5102309726728 54.7257118843514))";
Стр = СтрЗаменить(Стр, "POLYGON ((", ""); Стр = СтрЗаменить(Стр, "))", ""); Стр = СтрЗаменить(Стр, " ", ","); Стр = СтрЗаменить(Стр, ",,", " ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | 0 КАК x, | 0 КАК y |ГДЕ | ЛОЖЬ | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ " + Стр; Результат = Запрос.Выполнить(); ТЗ = Результат.Выгрузить(); ТЗ.ВыбратьСтроку(); |
|||
5
mingw
22.04.16
✎
15:46
|
Классика жанра. Самая быстрая.
Стр = "POLYGON ((20.5102309726728 54.7257118843514, 20.5102649674551 54.7257099207726, 20.5102612453575 54.7256894025381, 20.5102272692606 54.7256914689476, 20.5102309726728 54.7257118843514))"; Стр = СтрЗаменить(Стр, "POLYGON ((", ""); Стр = СтрЗаменить(Стр, "))", ""); Стр = СтрЗаменить(Стр, ", ", Символы.ПС); Для Номер=1 По СтрЧислоСтрок(Стр) Цикл Подстрока = СтрПолучитьСтроку(Стр, Номер); Подстрока = СтрЗаменить(Подстрока, " ", Символы.ПС); Сообщить("Х="+СтрПолучитьСтроку(Подстрока, 1)+", Y="+СтрПолучитьСтроку(Подстрока, 2)); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |