По сути, существует несколько способов геолокации — GPS, позиционирование WiFi (skyhook), IP, триангуляция сот.
Есть ли какой-либо фреймворк/сервис, который может использовать их все? (или хотя бы первые три)
Попробуйте самый точный, если не получится - вернитесь к менее точному (GPS выключен, в помещении, пользователь запрещает обнаружение соты и т.д.). Я проверил Google Gears — он использует только IP и GPS.
Лучшим из них будет фреймворк Javascript (для использования в веб-приложениях), но любой подойдет для более внимательного изучения.