Я вот тут подумал: было бы неплохо немного перестроить сам принцип работы базы.
Вот сейчас как:
1. Все точки максимально унифицируются, чтобы при сбросе в навигатор поддерживалось максимальное число доступных систем навигации. При этом все равно происходит конвертация в необходимый конкретному пользователю формат. В качестве бонуса имеем элемент неразберихи в виде "какой тип точки ставить на пост ДПС" и т.д.
2. Выбор точек для загрузки осуществляется "квадратиком", что несколько неудобно, т.к. я не видел еще ни одной области или района страны, который был бы квадратным
Да и глючит этот квадратик - все точки сразу им не выберешь. Потом, вот если я большую часть времени по Московской обл. езжу, но тут решил смотаться, например на юг - мне же только вдоль трассы точки нужны, ну т.е. всего несколько областей, а приходится тащить много лишнего...
В общем я предлагаю:
1. Держать в базе вполне определенные типы объектов, не зависимо от того, поддерживают ли навигаторы эти объекты или нет. Т.е. если вернуться к примеру про пост ДПС - сделать объект "Пост ДПС".
2. При выгрузке в свой формат - пользователь выбирает:
а) какие объекты загружать.
б) как эти объекты отобразить для его навигатора (т.е., например, пост ДПС и засада 40 - объединяются в Мобильная камера 40 - ну короче как пользователь задаст)
в) какие из свойств объекта брать и если нужно какие и как изменить (например, если пользователь хочет для поста ДПС скорость всегда была равна 0, а предупреждение срабатывало за 10км - то флаг ему в руки).
3. Точки выбираются по областям/регионам.
Какие плюсы:
1. Отвязываемся от моделей навигаторов - можем нормально структурировать базу, без оглядки на девайсы.
2. Если вдруг нужна поддержка нового девайса - она легко включается в систему в виде модуля.
3. Пользователи получают возможность "собрать" себе POI так, как им хочется сразу на сайте, без дополнительных шаманств на своем компе.
4. Разбиение на области даст много интересной статистики (в такой-то области столько-то точек, из них...) и упростит процесс выгрузки.
5. Т.к. конвертер из базы в девайс = модуль, каждый модуль получает свою отдельную жизнь с версиями, багами, разработкой и т.д. и не влияет на остальные модули.
Насчет реализации - не думаю что это все сильно сложно реализовать, т.к. частично многое уже и так реализовано, просто немного по другому.
Сам я не программер, но пишу время от времени что-то на perl, bash, учу потихоньку python - если чем смогу помочь - буду рад.