Add position caching to map