2010-11-16 30 views
28

Có thể sử dụng API Wikipedia hiện có để nhận danh sách các bài viết xung quanh vị trí địa lý không? Sắp xếp như thế nào Google bản đồ hiện nó?API Wikipedia cho định vị địa lý

Tôi muốn nói rằng tôi "ở đây" và tìm hiểu những gì xung quanh tôi trên Wikipedia.

tôi có thể nhìn thấy trên các bài báo như this bạn sẽ nhìn thấy "Tọa độ" ở phía bên tay phải, vì vậy tôi muốn làm một truy vấn bằng các tọa độ ...

bất kỳ suy nghĩ?

+1

Bạn thậm chí có thể sử dụng API của bản đồ Google để nhận kết quả từ lớp Wikipedia của họ. –

+2

chỉ tìm thấy điều này: http://www.geonames.org/export/wikipedia-webservice.html#findNearbyWikipedia có thể giúp tôi ... – Mark

+0

@BennyJobigan Bạn có thể xây dựng không? –

Trả lời

13

Không phát minh lại bánh xe, sử dụng DBpedia.
Trang mẫu có dữ liệu "lat" và "lon" extracted.
Và nó có thể được truy vấn với SPARQL.

+1

Thú vị, tôi không biết rằng dự án đã tồn tại! Cảm ơn Ill có một cái nhìn tốt về nó :) – Mark

+0

@ jpatokal: làm thế nào để sử dụng dbpedia để giải quyết các vấn đề OP đăng? u có thể làm sáng tỏ điều này không? – Abhinav

+0

@Abhinav Nếu các liên kết ở trên không giúp ích gì, tôi không thể giúp bạn ... – jpatokal

4

Nó có vẻ như không có API Wikipedia cho điều này, nhưng this Wikipedia page mô tả cách người khác sử dụng các thông tin này:

Tất cả tọa độ có sẵn để tải về trong Wikipedia cơ sở dữ liệu bãi. Để có được tọa độ từ XML định dạng kết xuất của tất cả các bài viết (enwiki-latest-pages-articles.xml.bz2, 4 GB), bãi cần phải được phân tích cho trang có chứa tọa độ trong các định dạng nhập niêm yết ở trên. Hầu hết các bài viết trong Wikipedia đều tuân thủ các định dạng và tọa độ này dễ dàng để phân tích cú pháp từ wikitext với các biểu thức thông thường cho các ký tự đơn giản trình tự. Vì tất cả các tọa độ đều liên kết đến cùng một công cụ PHP, chúng cũng có thể là được tìm thấy từ bảng định dạng SQL các liên kết bên ngoài (enwiki-latest-externallinks.sql.gz, 725MB). Phương pháp thứ hai này sẽ tuy nhiên không bao gồm tất cả các thông tin có sẵn về tọa độ, chẳng hạn như vị trí của chúng giữa cơ thể bài viết và vùng tiêu đề.

+0

Cảm ơn Philipp, tôi đã quản lý để có được một số bãi chứa DB, một điều đáng tiếc là bạn phải đi xuống con đường này. Nhưng như tôi đã nhận xét, tôi có thể chỉ sử dụng dịch vụ http://www.geonames.org/export/wikipedia-webservice.html#findNearbyWikipedia ngay bây giờ ... – Mark

+1

Các tọa độ thực sự khá tốn thời gian để phân tích cú pháp khi chúng đến các định dạng khác nhau. Xem http://en.wikipedia.org/wiki/Template:Coord để biết thêm chi tiết về các định dạng. – Filip

3

Giải pháp jquery và geonames API:

a, b = kinh độ, vĩ độ, tweet -> html div

function getcontent(a,b) { 
    jQuery(function($) { 
     $.getJSON('http://api.geonames.org/findNearbyWikipediaJSON?formatted=true&lat='+ a +'&lng='+ b +'&username=username&style=full&lang=de&wikipediaUrl&thumbnailImg', function(json) { 
      for(var i = 0; i < json.geonames.length; i++) { 
       $("#tweet").prepend('<span style="font-family: geneva, arial, helvetica, sans-serif;"><br><br><img src="wikilogo.gif"><br>' + json.geonames[i].summary + '<br><a href="http://'+ json.geonames[i].wikipediaUrl +'" target="_blank">'+ json.geonames[i].wikipediaUrl +'</a><br></span>'); 
      } 
     }); 
    }); 
} 
8

Có một cái nhìn tại Wikilocation, có thể có ích.

+2

CẬP NHẬT: Wikilocation đã được gỡ bỏ và bây giờ có [API WICIPEDIA CHÍNH THỨC] (https://www.mediawiki.org/ wiki/Tiện ích mở rộng: API GeoData # – ZJR

1

DBpedia và SPARQL không phải là lựa chọn tốt, ít nhất không phải cho Wikipedia tiếng Đức: Phạm vi phủ sóng quá nhỏ.

Tôi đang cố gắng phân tích tất cả các định dạng tọa độ địa lý khác nhau của bản thân ngay bây giờ (từ các bãi), nhưng điều đó khá khó khăn vì có rất nhiều biến thể khác nhau.