
Dmitry
22.06.2016
13:58:42
просто нужно универсальное решение

Мерлин
22.06.2016
13:58:50

Oleg
22.06.2016
13:59:23
по сути есть вариан оставить после десериализации в Json объекте

Dmitry
22.06.2016
13:59:27
а если там поле type будет неизвестное количество раз встречаться, то как быть?

Google

Мерлин
22.06.2016
13:59:30
Поле features - это ассоциативный массив структур, в которое есть поле юиона и поле Тип

Oleg
22.06.2016
13:59:40

Мерлин
22.06.2016
13:59:51

Oleg
22.06.2016
13:59:51
http://gis-lab.info/docs/geojson_ru.html#02
второй пункт
Объект GeoJSON может иметь необязательное свойство «crs»
вот тут может быть, а может не быть
я вот сейчас задумался
а разве json вообще позволяет поля с 1 именем?

Dmitry
22.06.2016
14:01:28
как то так будет?
`
struct MyData
{
string type;
Type t1;
}
struct Type
{
string type;
string geometry;
string property;
}`

Oleg
22.06.2016
14:01:29
это должно как-то регламентироваться в стандарте json

Мерлин
22.06.2016
14:01:32

Oleg
22.06.2016
14:02:29
по сути это сделанно в типе Json в vibe и в JSONValue в std

Google

Oleg
22.06.2016
14:02:39
так что вопрос в архитектуре

Dmitry
22.06.2016
14:03:46
А как лучше если оно:
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},

Oleg
22.06.2016
14:03:49
а вот тут уже сложнее
Все геометрии, тип которых отличен от «Geometry Collection», должны иметь свойство «coordinates». Значение данного свойства всегда представляет собой массив. Структура элементов массива определяется типом геометрии.
и что ты в строке будешь хранить?
кусок json строки?)

Dmitry
22.06.2016
14:04:42
да...

Oleg
22.06.2016
14:04:47
тогда какой смысл это всё в структуру делать?

Мерлин
22.06.2016
14:04:51

Dmitry
22.06.2016
14:05:00
я просто боюсь с уровнем вложенности структуры запутаться

Oleg
22.06.2016
14:05:00
это то понятно
но это подразумевает переменный тип
либо наследование
а классы в качестве точек это плохо
вернее наоборот
точки в качестве классов
тут уже придётся tagged union делать
хотя, чтобы не изобретать велосипед можно посмотреть, может есть уже либы какие для этого
типа
alias ElemT = megaTemplateStructConstructor!(Type1,Type2,Type3);
ElemT a;
if( a.isType1 == true )

Google

Dmitry
22.06.2016
14:08:21
А может проще как JSON будет оставить все же? И написать метод хождения по нему?

Oleg
22.06.2016
14:08:36
это твой код и твоё решение)
в принципе это минимум работы
в том плане, что тебе не нужно описывать структуру явно
ты её будешь всегда как-то подразумевать в алгоритмах
и тогда твой код будет ломаться, когда будет исполнятся алгоритм, а не когда будет парситься json

Dmitry
22.06.2016
14:11:01
это ты про метод работы с JSON ?
самопальный

Oleg
22.06.2016
14:11:10
я про программу в целом
зачем тебе самопальные методы работы с json?
что vibe за тебя распарсит строку с json'ом, что std.json, всё приходит к одному
у тебя будет root объект json, а какую он имеет структуры ты узнаешь, только когда начнёшь его использовать

Dmitry
22.06.2016
14:12:31
не, я допустим если мне нужно будет для каждого JSON поле имени получать
допустим сделать метод получения имени или типа геометрии
для каждого

Oleg
22.06.2016
14:13:24
ну вот ты и будешь проверять на каждом шагу "есть ли поле такое, если есть, но смотрим дальше..."
и что такое "поле имени"?

Dmitry
22.06.2016
14:14:04
ну { "type": "Feature", "properties": { "ID": 203, "NAME": "RUSSIAN FEDERATION",

Oleg
22.06.2016
14:14:26
ну так properties вообще не имеет регламентированной структуры

Dmitry
22.06.2016
14:14:47
а ну да точно

Google

Oleg
22.06.2016
14:14:50
NAME может там быть, а может и не быть
насчёт этого мы в самом начале сказали)

Dmitry
22.06.2016
14:27:27
Вообще хранение в БД что даст то?
Какие минусы от ФС получу?
сложнее будет сделать операции вида: "получить набор документов с таким-то типом" ?

Oleg
22.06.2016
14:29:13
да
как раз об этом писал
как ты себе представляешь эту операция на ФС вообще?

Dmitry
22.06.2016
14:29:46
м...
жаль что для Ди ничего кроме https://gitlab.com/PiotrekDlang/DraftLib/ нет
а то как по мне то что нужно. Минимум фишек и портабельная

Admin
ERROR: S client not available

Dmitry
22.06.2016
14:31:24
тока она глубокая альфа, но интересно было бы попробовать... но страшно что дальше развиваться не будет

Oleg
22.06.2016
14:33:55
и что она делает?

Dmitry
22.06.2016
14:35:00
Структуры позволяет в виде коллекция хранить

Oleg
22.06.2016
14:36:44
мне кажется это не что-то особенное

Dmitry
22.06.2016
14:37:54
Для ди альтернатив нет
Просто монги и тд слишком тяжеловесны

Oleg
22.06.2016
14:38:43
а что за база тут используется?
а...
это и есть сама по себе база

Google

Oleg
22.06.2016
14:41:18
напиши автору, спроси его платы

Dmitry
22.06.2016
14:47:26
Objects").filer!(obj => obj.identity.name.canFind("J") && obj.age > 20);
На вид то что надо

Oleg
22.06.2016
14:48:07
а что надо то было?)

Dmitry
22.06.2016
14:49:20
Просто как хранилище

qwe
22.06.2016
15:10:53
Dub можно поставить на Ubuntu через apt? https://github.com/dlang/dub#debianubuntu-linux
или больше неактуально?
никто не знает случайно?

Oleg
22.06.2016
15:13:59
а вообще на линуксе много кого тут?
у меня fedora

qwe
22.06.2016
15:15:25
arch/ubuntu
на из ауры поставил без проблем
на арче*

Oleg
22.06.2016
15:16:49
видимо федорой в сообществе мало кто пользуется
а это важно из пакета или из тарбола?

qwe
22.06.2016
15:18:45
да нет, просто хотел поставить из пакета
а все, заробило
ключик не добавил
и в итоге там d-apt)

Dmitry
22.06.2016
16:31:01
Так, а что мне мешает sqlite заюзать и хранить геоджейсон в текстовом поле
Предварительно заполняя инфу которую про него получается выцепить
Есть минусы?