Algorithms and Data Structures for Large Scale Geographic Information Systems