Думая о вашей проблеме, я мог бы найти три направления, на которые вы могли бы нацелить свой поиск далее (это не руководство от руки, а скорее готовое к открытию мозговое устройство для застрявшего ситуация, с которой вы столкнулись) :
1) Использование встроенных структур Java. Да, действительно, список - это худший случай метода поиска. A Map
, как следует из названия, гораздо удобнее для карт. Это не только имя, но индексирование Map
значительно меньше времени по сравнению с List
. Вы можете представить свою карту в виде куба, где вы должны обрабатывать около половины точек внутри нее, если вы используете List
и, вероятно, только ее узкий слой при поиске с помощью индексации карты. Есть величина разницы. Итак, мой ответ здесь: Map
- ключевое слово в правильном направлении (, если вы хотите сделать это таким образом после прочтения моего ответа) .
2) Использование решения картографического сервера. Это, вероятно, слишком далеко от вашего подхода, но целые рамки созданы для решения вашего типа вопроса. Примером является GeoServer . У него есть готовое решение для всей проблемы. Это стабильное решение для большой проблемы, возможно, у вас в руках: показать карту пользователю из источника.
3) Придерживаясь используемой вами инфраструктуры GDAL, вы можете выбрать несколько другой py-файл, например gdal_proximity.py и - вау! - у вас есть возможность поиска в ваших руках! Этот конкретный ищет по центральной точке и расстоянию, но будет делать то, что вам нужно =)
Есть отправная точка, как бы я это сделал. Может ли это послужить чему-то?