O que você está procurando é o método de navegação usado por navios e aeronaves antes do advento do GPS. Requer não apenas um instrumento para medir o ângulo entre o sol ou uma estrela (como Polaris) e o horizonte, mas também uma medição precisa do tempo e gráficos que podem ser usados para interpretar os números. E, claro, um cronômetro preciso - você precisará saber a hora no Obervatory Greenwich, em Londres.
O instrumento tradicional usado para determinar esse ângulo é o sextante. Aqui está um artigo descrevendo o uso de um sextante para determinar a posição de alguém:
http://www.ehow.com/how_7562747_use-nautical-sextant.html
Suponho que um algoritmo para fazer o que você está pedindo esteja disponível onde bons sextantes são vendidos - quanto aos gráficos, bem, talvez haja gráficos para download em algum lugar.
Além disso, aqui está um bom artigo sobre como determinar a latitude e longitude pelas estrelas. Latitude é o que um sextante lhe dirá, a longitude é determinada de maneira diferente. Para isso, você precisa de dois relógios: um definido como GMT; um definido para o horário UTC local (NÃO para o fuso horário). O método é descrito aqui: Como calcular a longitude . O que nos leva à questão de como calcular a hora solar local, descrita neste artigo Como calcular a hora solar . Claramente, você não pode usar isso para navegação - é conveniente para a economia humana, mas não para encontrar sua localização.
Apenas para esclarecer por que você não pode usar o horário civil local para determinar a longitude é que o horário solar é quase o mesmo nas ilhas Havaí e Kodiak, mas o horário civil do Havaí é uma hora depois do Kodiak. E a China se estende por cerca de 5.026 quilômetros em toda a massa de terra do Leste Asiático, que é cerca de 4 horas de tempo solar, mas tudo tem o mesmo tempo civil.
É melhor fazer essa pergunta no Sailing SE. Oh, espere, ainda não há um.