2010-04-05 42 views
131

Tôi đang phát triển một trang web dựa trên thiết bị di động, ở đó tôi đã tích hợp Google Maps, tôi cần phải điền vào trường 'Từ' của Google Maps một cách linh hoạt.Nhận vị trí GPS từ trình duyệt web

Có thể nhận vị trí GPS từ trình duyệt web và điền vào trường 'Từ' của Google Map một cách linh hoạt không?

+2

gì điện thoại di động nào bạn có ý định hỗ trợ? –

+0

Tôi muốn hỗ trợ tất cả các trình duyệt di động, nhưng i-phone là ưu tiên cao – Ganesh

+0

Bạn có thể nên viết một ứng dụng gốc vì nó sẽ cho phép tích hợp chặt chẽ hơn với phần cứng, nếu nó có sẵn –

Trả lời

3

GeoLocation API, nhưng trình duyệt hỗ trợ khá mỏng trên mặt đất hiện nay. Hầu hết các trang web quan tâm đến những thứ như vậy đều sử dụng cơ sở dữ liệu GeoIP (với các điều khoản thông thường về tính không chính xác của một hệ thống như vậy). Bạn cũng có thể xem các dịch vụ của bên thứ ba yêu cầu sự hợp tác của người dùng như FireEagle.

+1

cảm ơn rất nhiều vì phản hồi nhanh của bạn. nếu có thể, bạn có thể cung cấp cho tôi thêm một số mẹo hay không ... – Ganesh

155

Nếu bạn sử dụng Geolocation API, nó sẽ đơn giản như sử dụng mã sau đây.

navigator.geolocation.getCurrentPosition(function(location) { 
    console.log(location.coords.latitude); 
    console.log(location.coords.longitude); 
    console.log(location.coords.accuracy); 
}); 

Bạn cũng có thể sử dụng Google's Client Location API.

Vấn đề này đã được thảo luận trong Is it possible to detect a mobile browser's GPS location?Get position data from mobile browser. Bạn có thể tìm thêm thông tin ở đó.

+0

API Google Client Location có được đề cập đến không? Liên kết được cung cấp đến Google Loader –

+1

Tôi không thấy liên kết trên trang đó là một trong các API có sẵn. - Bạn có thể sử dụng API Google Latitude: http://code.google.com/apis/latitude/ - Với điều này, bạn có thể nhận vị trí hiện tại của khách hàng: http://code.google.com/apis/latitude/v1/using_rest.html # RetrievingCurrent – dochoffiday

+1

liên kết w3c: http://dev.w3.org/geo/api/spec-source.html – surfealokesea

44

Xem các cuộc thảo luận How to get GPS coordinates in the browser

Ở đó bạn có liên kết với ví dụ ứng dụng Where Am I? hoạt động trên các thiết bị di động. Tôi đã thử nghiệm nó trên Android của tôi và nó bắt đầu mô-đun GPS để có được tọa độ hiện tại. Bạn có thể phân tích nguồn trên ví dụ sống.

Tôi đã thực hiện mã QR để truy cập nhanh từ điện thoại di động:

Where Am I QR code

+30

+1 cho mã QR ... – Asken

+5

QR đã lưu cho tôi toàn bộ nỗ lực – captDaylight

+1

không hoạt động trên điện thoại Android của tôi ngay cả khi GPS + WiFi được bật và cho phép. –

17

Để cung cấp cho một chút câu trả lời cụ thể hơn. HTML5 cho phép bạn có được tọa độ địa lý, và nó thực hiện một công việc khá tốt. Nhìn chung, hỗ trợ trình duyệt cho vị trí địa lý là khá tốt, tất cả các trình duyệt chính ngoại trừ ie7 và ie8 (và opera mini). IE9 thực hiện công việc nhưng lại là người biểu diễn tồi tệ nhất. Thanh toán caniuse.com:

http://caniuse.com/#search=geol

Ngoài ra bạn cần sự chấp thuận của người sử dụng của bạn để truy cập vào vị trí của họ, do đó hãy chắc chắn rằng bạn kiểm tra này và đưa ra một số hướng dẫn đàng hoàng trong trường hợp nó bị tắt. Đặc biệt là cho phép chuyển quyền sở hữu iPhone cho Safari là một chút cồng kềnh.

+1

https://www.w3schools.com/html/html5_geolocation.asp –

+0

http://www.dotnetcurry.com/aspnet-mvc/782/html5-geolocation-aspnet-mvc-part1 là tham chiếu hữu ích để triển khai trong asp .net mvc môi trường –

5

Sử dụng này, và bạn sẽ tìm thấy tất cả các thông tin tại http://www.w3schools.com/html/html5_geolocation.asp

<script> 
var x = document.getElementById("demo"); 
function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 
function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
} 
</script> 
+0

thử nghiệm từ iphone hoạt động rất chính xác (y) –

+1

Chỉ cần một lưu ý: getCurrentPosition() và watchPosition() không còn hoạt động trên nguồn gốc không an toàn. Để sử dụng tính năng này, bạn nên cân nhắc chuyển ứng dụng của mình sang nguồn gốc an toàn, chẳng hạn như HTTPS. – user2589273

Các vấn đề liên quan