Есть холст на котором нарисованы полигоны, около 500 000, эти полигоны сейчас хранятся в JSON файле и выгружаться при запуске проекта, а после отрисовываются.
JSON со списком полигонов сейчас по сути файл проекта
Вопросов несколько:
1) При клике мышки в любое место надо найти все полигоны, что были нарисованы под точкой клика, как это лучше всего сделать? (читать JSON не обязательно, допустимо выгрузить его в какой-нибудь контейнер в оперативку)
2) Юзер будет часто сохранять изменения, наверное, при каждом изменении (раз в 5-10 секунд) и тем самым перезаписывая JSON, может быть посоветуете что-то на его замену?
1. Использовать большую хэштаблицу, где в качестве ключа будут координаты полигона, а в качестве значения ссылка на сам полигон. При клике мыши - брать координаты курсора и за о(1) доставать по ним из таблицы все нужные полигоны, сдвигая координаты вниз.
2. Можно разнести информацию на несколько Json'ин, чтобы уменьшить размер файла и хранить в том документе который будет перезаписываться только ту информацию, которую нужно постоянно перезаписывать (в моем понимании - это координаты). Можно это хранить тупо в бинарном файле, и записывать подряд числа координат, а не JSON.