Most GIS are layer based. But I am looking for open-source object-oriented GIS. Is there any out there?
By object-oriented I mean logical data model for vector GIS. Here's explanation of my definitions.
Neo4j is a graph-based database (where nodes are akin to objects) and Neo4j Spatial is a "library of utilities for Neo4j that faciliates the enabling of spatial operations on data". Some slides here and here.
Also see this related question on StackOverflow: NoSQL and spatial data
Other examples of object-oriented spatial databases are listed in this Wikipedia article: Object-based spatial database
I know very little about the theory but I think you can get a pseudo object-oriented solution with Postgis and an ORM like Django framework or SqlAlchemy.
I use a combination of Postgis and Django and the way of dealing with the geographic models is object oriented, but they are stored as a relational database.
For example, you can have a 'point' model and a 'data' (key:value) model.
Any 'point' instance has an add_data() method and also geographic methods like is_near(), contains(), get_xy(), etc.
Than you can have a 'BurgerShop(point)' and BusStop(point) class with special methods like BurgerShop.get_burger_types(), BurgerShop.get_nearest_busstop() or BusStop.get_nearest_burgershop().