2012-05-20 28 views
8

Bất cứ ai biết tại sao điều này sẽ làm việc:vị trí Đi qua tọa độ vào Google Maps như biến

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

Nhưng điều này sẽ không:

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

tôi đã cố gắng vượt qua vĩ độ và kinh độ như biến riêng biệt và điều đó cũng không làm được. Làm thế nào tôi có thể vượt qua các tọa độ thành công như một biến? Cảm ơn!

Trả lời

17

Trong ví dụ này, bạn đang đi qua hai giá trị số khác nhau vào một nhà xây dựng và sau đó gán đối tượng mới được tạo ra để wickedLocation:

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

Trong ví dụ này, bạn đang đi qua một chuỗi giá trị duy nhất vào một constructor yêu cầu hai tọa độ số riêng biệt:

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

Các loại dữ liệu hoàn toàn khác nhau.

Với những gì đã nói, nếu bạn muốn để đại diện cho một phối hợp như một đối tượng duy nhất, bạn có thể làm như vậy như thế này:

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

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

Sau đó, khi bạn cần để tạo ra các coords phản đối từ Google, bạn có thể vượt qua dữ liệu dưới dạng các đối số riêng lẻ được lấy từ một đối tượng duy nhất:

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

Cảm ơn! Điều đó có ý nghĩa. Bạn sẽ sử dụng loại dữ liệu nào để chuyển tọa độ? Một mảng? – coryetzkorn

+0

Một mảng có thể có cùng một vấn đề. Một mảng sẽ là một đối số được truyền vào một hàm tạo yêu cầu 2 đối số. – jmort253

+1

@coryetzkorn - Tôi đã cập nhật câu trả lời của mình với một số thông tin khác có thể hữu ích. Bạn có thể biểu diễn một tọa độ như một đối tượng có 2 thuộc tính, sau đó chuyển các thuộc tính riêng lẻ dưới dạng các đối số riêng lẻ. – jmort253

2

Tôi tin rằng bạn có thể sử dụng chuỗi để xác định tọa độ, nhưng bạn cần hai (một cho mỗi thông số) không phải một.

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

Nếu không hoặc sử dụng nổi trực tiếp hoặc phân tích chuỗi của bạn vào nổi với parseFloat()

+0

Tôi vừa thử nghiệm điều này tốt nhất có thể và có vẻ như nó sẽ hoạt động. Nó không ném bất kỳ lỗi nào, và các đối tượng kết quả từ cả hai tham số dưới dạng chuỗi và tham số là số giống nhau. Nó không có trong tài liệu hướng dẫn, vì vậy không có gì đảm bảo điều này sẽ tiếp tục hoạt động. Tuy nhiên, tôi muốn +1, nhưng tôi đã hết phiếu bầu trong ngày :) – jmort253

6

Nếu bạn đang nhận được tọa độ như một chuỗi, trong định dạng mà bạn thấy trong ví dụ của bạn, bạn có thể làm điều này:

var b=wickedCoords.split(","); 
var wickedLocation=new google.maps.LatLng(parseFloat(b[0]), parseFloat(b[1])); 
Các vấn đề liên quan