web-dev-qa-db-ja.com

ジオロケーション用のウィキペディアAPI

既存のウィキペディアAPIを使用して、地理的位置に関する記事のリストを取得することは可能ですか?グーグルマップのように?

私は「ここ」にいると言い、ウィキペディアで私の周りに何があるかを調べたいと思います。

this のような記事で見ることができます右側に「座標」が表示されているので、これらの座標でクエリを実行したいと思います...

何かご意見は?

31
Mark

車輪の再発明はしないでください。 DBpedia を使用してください。
「lat」および「lon」データを含むサンプルページ 抽出
そして、 [〜#〜] sparql [〜#〜] で照会できます。

16
jpatokal

更新された回答
Wikilocation は廃止され、現在は OFFICIAL WIKIPEDIA API

? action=query
& list=geosearch
& gsradius=<radius-in-meters>
& gscoord=<lat>|<lon>

HTMLの例 | JSONの例

18
ZJR

Wikilocation を見てください。役に立つかもしれません。

10
xidew

これは現在、Special:Nearbyを通じてウィキペディアに組み込まれています。

https://en.wikipedia.org/wiki/Special:Nearby

8
Ainali

このためのウィキペディアAPIはないようですが、 このウィキペディアページ は、他の人がこの情報をどのように利用するかを説明しています。

すべての座標は、ウィキペディアのデータベースダンプからダウンロードできます。すべての記事(enwiki-最新ページ-articles.xml.bz2、4ギガバイト)のXML形式のダンプから座標を取得するには、ダンプが上記の入力フォーマットの座標を含むページのために解析する必要があります。ウィキペディアのほとんどの記事はこれらの形式に準拠しており、座標は単純な文字シーケンスの正規表現を使用してウィキテキストから簡単に解析できます。すべての座標が同じPHPツールにリンクしているため、外部リンクのSQL形式のテーブル(enwiki-latest-externallinks.sql.gz、725MB)からも見つけることができます)。この2番目の方法ではただし、記事の本文とタイトル領域の間の位置など、座標に関する利用可能なすべての情報が含まれているわけではありません。

5
Philipp

ソリューションjqueryおよびgeonamesAPI:

a、b =経度、緯度、ツイート-> 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>');
            }
        }); 
    }); 
}
4
mboeckle

DBpediaとSPARQLは、少なくともドイツのWikipediaにとっては、適切なオプションではありません。カバレッジが小さすぎます。

現在、(ダンプから)さまざまな地理座標形式をすべて自分で解析しようとしていますが、実際にはさまざまなバリエーションがたくさんあるため、これは非常に困難です。

1
user1645736

これは古い質問ですが、同様のクエリのURL形式は次のとおりです。

https://en.wikipedia.org/w/api.php?action=query&list=geosearch&format=json&gscoord=40.418670|-3.699389&gsradius=10000&gslimit=1

&gscoord=の後には、座標を|で区切って配置する必要があり、&gsradius=の後には、検索半径をメートル単位で指定します。gslimitは、応答するエントリの最大数です。

応答にはJSONが含まれています。

1