Я использую SpatiaLite (точнее, его порт WebAssembly Spatia SQL. js) в веб-приложении.
Сценарий использования в этом приложении заключается в том, что пользователь хочет запрашивать геометрию точек (> 500 тыс. Из них, в любой точке мира) против одной (много) геометрии многоугольника, отфильтровывая точки, которые не находятся внутри указанной геометрии.
Я заранее не знаю (много) многоугольника, потому что он получен с помощью механизма c. Это может быть, например, страна, провинция, город или нарисованный от руки пользовательский многоугольник.
Использование простого запроса с функцией SpatiaLite Within
прекрасно работает. Производительность также отлично подходит для небольших (много) полигонов, таких как город. Однако при выполнении запросов, скажем, к Австралии (огромный многоугольник, состоящий из множества частей) производительность снижается.
Я привязан к SpatiaLite или пользовательскому решению, потому что большинство пространственных баз данных не могут работать на стороне клиента JavaScript.
Извините, если это очевидный вопрос - до сих пор я не нашел подобных вопросов.
Есть мысли о том, как ускорить это? Некоторая потеря точности допустима.