2012-05-20 11 views
8

ktoś wie dlaczego to będzie działać:Przechodząc lokalizacja współrzędne google maps jako zmiennej

var wickedLocation = new google.maps.LatLng(44.767778, -93.2775); 

Ale to nie będzie:

var wickedCoords = "44.767778, -93.2775"; 
var wickedLocation = new google.maps.LatLng(wickedCoords); 

Próbowałem przechodzącą szerokość i długość geograficzną jako oddzielne zmienne i że też tego nie zrobiłem. Jak mogę pomyślnie przekazać współrzędne jako zmienną? Dzięki!

Odpowiedz

17

W tym przykładzie są przechodzącą dwie różne wartości liczbowe w konstruktorze, a następnie przypisanie nowo utworzony obiekt do wickedLocation:

var wickedLocation = new google.maps.LatLng(44.767778, -93.2775); 

W tym przykładzie jesteś przechodzącą pojedynczą wartość ciągu do konstruktora które wymaga dwóch odrębnych współrzędnych numerycznych:

var wickedCoords = "44.767778, -93.2775"; 
var wickedLocation = new google.maps.LatLng(wickedCoords); 

rodzajów danych zarówno całkowicie różne.

Z powiedział, że jeśli chcesz do reprezentowania współrzędnych jako pojedynczy obiekt, możesz to zrobić tak:

var myHome = { "lat" : "44.767778" , "long" : "-93.2775" }; 

var yourHome = { "lat" : "23,454545" , "long" : "-92.12121" }; 

wtedy, kiedy trzeba, aby stworzyć koordy sprzeciw od Google, można przekazać dane w indywidualnych argumentów pochodzących z jednego obiektu:

var wickedLocation = new google.maps.LatLng(myHome.lat, myHome.long); 
+0

Dzięki! To ma sens. Jakiego rodzaju danych używałbyś do przekazania współrzędnych? Tablica? – coryetzkorn

+0

Tablica prawdopodobnie będzie miała ten sam problem. Tablica byłaby pojedynczym argumentem przekazanym do konstruktora, który wymaga 2 argumentów. – jmort253

+1

@coryetzkorn - zaktualizowałem swoją odpowiedź, podając kilka dodatkowych informacji, które mogą być pomocne. Możesz reprezentować współrzędne jako obiekt z 2 właściwościami, a następnie przekazywać poszczególne właściwości jako indywidualne argumenty. – jmort253

2

wierzę, że można używać strun do określenia współrzędnych, ale potrzebne są dwa (po jednym dla każdego parametru) nie jeden.

wickedLat = '44.767778'; 
wickedLon = '-93.2775'; 
wickedLocation = new google.maps.LatLng(wickedLat, wickedLon); 

Jeśli nie albo użycie płynie bezpośrednio lub analizowania swoich łańcuchów na pływakach z parseFloat()

+0

Po prostu przetestowałem to najlepiej jak potrafiłem i wygląda na to, że zadziała. Nie generuje żadnych błędów, a wynikowe obiekty z obu params jako łańcuchy i parametry jako liczby są takie same. Nie ma go w dokumentacji, więc nie ma gwarancji, że nadal będzie działać. Nadal będę dawać +1, ale nie mam głosów na ten dzień :) – jmort253

6

Jeśli otrzymujesz współrzędne jako ciąg w formacie pokazałeś w swoim przykładzie, można to zrobić:

var b=wickedCoords.split(","); 
var wickedLocation=new google.maps.LatLng(parseFloat(b[0]), parseFloat(b[1])); 
Powiązane problemy