Mam następujący kod na stronie, na której użytkownicy mogą tworzyć posty:

<script>

function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
}

function showPosition(position)
{
    $('input#latitude').val(position.coords.latitude);
    $('input#longitude').val(position.coords.longitude);    
}

getLocation();

</script>

Wypełniają dwa ukryte pola w formie z koordynatami użytkowników. Te współrzędne są zapisywane w tabeli bazy danych dla postu, aby słupek może być wyświetlany na mapie, aby inni użytkownicy mogli zobaczyć, gdzie został wysłany.

Jeśli jednak użytkownik zdecyduje się: a) nie dzielić ich lokalizację b) używa przeglądarki, która nie obsługuje geolokalizacji

Nie będę mógł zapisać tych informacji i pokona punkt aplikacji!

Czy jest ich lepszy sposób na to zrobić? I wiele do obchodzenia się z problemami, gdy użytkownik postanawia nie dzielić ich lokalizacji lub nie ma geolokalizacji?

Do tej pory mam: http://dev.driz.co.uk/location/ jako Test i mam też pole, które będą zaludnione lokalizacją użytkowników w formie miasta / miasta. Jest tak, że użytkownik może zobaczyć, gdzie obecnie publikują, a jeśli się myli, to pozwoli im zmienić go i zaktualizować współrzędne (zauważ, że po prostu otrzyma centralną lokalizację, a nie rzeczywista lokalizacja, a nie rzeczywista lokalizacja szukaj tylko miasta, które wprowadzają).

Chcę użyć API Google Maps, aby wypracować lokalizację użytkowników.

Aby wyjaśnić, co chcę zbudować:

1.) Lokalizacja użytkowników pochodzi z tabeli Użytkownicy wypełnia pole pokazane na stronie. Następnie zostanie ono zastąpiony swoją obecną lokalizacją przy użyciu geolokalizacji. Jeśli nie mają tego ani nie zablokują, po prostu użyje tekstu wypełnionego tekstu.

2.) Używanie tej wartości lokalizacji lub geolokalizacji otrzymamy współrzędne dla użytkownika, a następnie włóż je do ukrytych pól.

3.) Jeśli użytkownik zdecyduje, że lokalizacja jest błędna lub chcą zmienić go gdzieś indziej z jakiegokolwiek powodu, a następnie mogą wpisać go w polu i kliknąć przycisk Zmień, który znajdzie współrzędne dla tej lokalizacji. (Pokaż błąd, jeśli nie można go znaleźć i użyć z prefiksu ustawień domyślnych z lokalizacji użytkownika do momentu znalezienia nowego).

Czy ktoś może pomóc? Dzięki

2
Cameron 10 wrzesień 2012, 01:10

2 odpowiedzi

Najlepsza odpowiedź

Czy chcesz to zrobić tylko w przeglądarce? Jeśli nie, Użytkownik zdecyduje się nie udostępniać jego lokalizacji, możesz oszacować współrzędne w zapleczu za pomocą biblioteki GeoiP i Usługa geokodowania w Google Maps API.

1
Przemek Lewandowski 9 wrzesień 2012, 21:18

Miałem pewnego sukcesu z http://ipfodb.com/ dla przypadków, w których użytkownik nie akceptujenia ani ich Przeglądarka nie obsługuje geolokalizacji. Zapewniają wiele przykładowych kodeksu dla różnych języków, w tym dostęp do interfejsu API bezpośrednio przy użyciu JavaScript, a znalazłem ograniczenia i dokładność ich wolnego interfejsu API, aby były wystarczająco rozsądne dla witryn ze światłem do umiarkowanego ruchu.

0
Kelvin 9 wrzesień 2012, 21:31