Sé muy poco acerca de la teoría, pero creo que se puede obtener una solución orientada a objetos falsos con Postgis y un ORM como el marco Django o SqlAlchemy.
Utilizo una combinación de Postgis y Django, y la forma de tratar los modelos geográficos está orientada a objetos, pero se almacenan como una base de datos relacional.
Por ejemplo, puede tener un modelo de "punto" y un modelo de "datos" (clave: valor).
Cualquier instancia de 'punto' tiene un método add_data () y también métodos geográficos como is_near (), contiene (), get_xy (), etc.
Entonces puedes tener una clase 'BurgerShop (punto)' y BusStop (punto) con métodos especiales como BurgerShop.get_burger_types (), BurgerShop.get_nearest_busstop () o BusStop.get_nearest_burgershop ().