Para dar uma resposta um pouco mais específica. O HTML5 permite que você obtenha as coordenadas geográficas e faz um trabalho bastante decente. No geral, o suporte ao navegador para geolocalização é muito bom, todos os principais navegadores, exceto ie7 e ie8 (e opera mini). O IE9 faz o trabalho, mas é o pior desempenho. Caixa caniuse.com:
http://caniuse.com/#search=geol
Além disso, você precisa da aprovação do usuário para acessar sua localização, portanto, verifique isso e dê algumas instruções decentes, caso esteja desativado. Especialmente para Iphone, ativar as permissões para o Safari é um pouco complicado.