2010-04-01 37 views
7

Tôi muốn trích xuất vĩ độ và kinh độ của một bộ khoảng 50-100 chân trong trang web bản đồ của Google. Tôi không kiểm soát trang và tôi không cần phải làm nhiều hơn một lần vì vậy tôi đang tìm kiếm một cái gì đó nhanh chóng và bẩn thỉu. Tôi đã có FireFox với FireBug cũng như Chrome và tất cả những gì tôi cần là một thứ dễ dàng hơn việc nhập lại tất cả các số.Làm thế nào để trích xuất lat/lng của các chân trong bản đồ google?

+1

tại sao bạn muốn lấy cắp dữ liệu? – Jonathan

+0

@ Jonathan: Tại sao bạn cho rằng tôi sẽ ăn cắp nó? Từ những gì tôi đã nói, nó có thể là từ một bộ dữ liệu miền công cộng. (Trong thực tế, tôi có mọi lý do để tin rằng chủ sở hữu sẽ tốt với tôi trích xuất dữ liệu. Trang có sẵn công khai.) – BCS

+4

Nếu nó là một tập dữ liệu công cộng thì tại sao không nhận được nó thay vì viết một kịch bản để trang trại dữ liệu từ bên trong một ứng dụng? Trang có sẵn công khai không có nghĩa là dữ liệu trên trang đó là miễn phí ... – Jonathan

Trả lời

2

Chỉ cần lưu file .html và sử dụng tác phẩm regex:

Hai regex có thể là điểm khởi đầu tốt đẹp:

@[0-9]+\.[0-9]+,-[0-9]+.[0-9]+",geocode:"",sxti:"[[email protected] .]+" 
{id:"[A-Zloc0-9]+",fid 
0

Tùy thuộc vào loại bản đồ và cho dù các chân được thiết lập bởi vĩ độ và kinh độ hoặc theo địa chỉ, nó thậm chí có thể hoạt động để chỉ nhận được liên kết (nhấp vào "Liên kết" tại trang Google Maps, URL trong trình duyệt có thể không phải là sam) và tìm kiếm "sll = [.. .]" thông số.

+0

OK, bây giờ làm cách nào để trích xuất các liên kết? Hãy nhớ rằng tôi đã có nhiều hơn có thể dễ dàng thực hiện bằng tay. – BCS

+0

Liên kết nào? Tôi nghĩ bạn muốn có vĩ độ/kinh độ. – Dominik

14

Chỉ cần nhấp vào liên kết shortcut vào bản đồ để truy xuất một URL cho bản đồ với chân trong.

Tiếp thêm &output=kml đến cuối url này và sử dụng liên kết để lấy một file kml chứa tất cả các dữ liệu pin.

Tệp kml này thực sự ở định dạng xml để phân tích cú pháp nó phải dễ dàng, bạn chỉ cần tìm kiếm các phần tử <coordinates> chứa dữ liệu kinh độ và vĩ độ bạn cần.

Định dạng kml được ghi lại ở đây: http://code.google.com/apis/kml/documentation/kmlreference.html

+0

một regex đơn giản để trích xuất tọa độ sẽ là . * FixerMark

+4

Tính năng này không hoạt động nữa. Bây giờ, mẹo là: https://www.google.com/maps/d/kml?mid={map_id} Ví dụ: https://www.google.com/maps/d/kml ? mid = 1lL6Ylpo7P3HnANcHTAzbH5hEx-E – brunetton

0

Google có thay đổi rất nhiều cách bạn có thể trích xuất thông tin về google.maps và đã thiết lập một số hạn chế như số lượng các truy vấn theo ngày.

Để trích xuất lat và lon bản đồ của Google, bạn cần một chút kiến ​​thức về mã HMTL và thao tác với các tệp JSON/XML. (tất cả đều có thể được tìm thấy trong nhiều hướng dẫn.

Tôi khuyên bạn nên extrac dữ liệu bằng cách sử dụng de "Google Địa điểm API" nó rất dễ dàng và bạn có thể giải nén khoảng 150k vị trí theo ngày miễn phí.Bạn phải có một tài khoản, kích hoạt đặc quyền của bạn của API Places (bật/tắt buttom), giúp bạn có được khóa bí mật và sau đó sử dụng một URL đơn giản để trích xuất các tập tin/XML JSON Dưới đây là hai liên kết tuyệt vời cho rằng:.

[1] https://developers.google.com/places/documentation/search?hl=en

[2] https://developers.google.com/places/training/basic-place-search?hl=en

Nếu bạn muốn biết thông tin chi tiết về tọa độ bạn sẽ nhận được, hãy chuyển đến phần "Yêu cầu chi tiết địa điểm" trong liên kết thứ hai, cung cấp cho bạn thông tin về loại trang web, số điện thoại và tất cả nhận xét mà người dùng đã tạo, nếu chúng có sẵn.

Viết mã và chào mừng tuyệt vời!

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