IMO, ни одно приложение не сможет сделать это само по себе. Потребуется помощь спутника или мобильного телефона, вышек сотовой связи, чтобы определить положение, в котором сейчас находится сотовый телефон, что опять-таки с точностью до 30-50 метров.
Расчет здесь будет сделан программным обеспечением в вышках сотовой связи или на спутнике. Ваша заявка только сделает запрос, а затем получит данные, отправленные в ответ.
Опять же, apis, которые вы будете использовать, будут теми, которые были предоставлены компанией сотовой связи или спутниковой службой. Это почти никогда не бесплатно. Я не уверен, что они продают его и обычным пользователям. Только, может быть, крупные компании, такие как Blackberry или тому подобное.