Help:Extension:Kartographer/ja

Kartographer はWikimediaのウィキ上で対話的な操作を行う地図を扱う拡張機能です. このページでは動的な地図の作成に使うKartographerのタグを使い分けて、を使ってウィキページに地図を正しく組み込んだり、を使って動的な地図にリンクを作成したりする技術を説明しています.

さあ、はじめましょう
 このコードは、画面右側のサンプルに見るような、簡略でインタラクティブな地図を挿入します.


 * ウィキボヤージュとtest2wiki（テスト空間）では埋め込み地図はインタラクティブで対話型の操作ができます. 地図の回転はクリック1回で操作; ダブルクリック (もしくは右角のアイコンを押す) で地図を全画面表示し、やはり対話型の操作ができます.
 * ウィキペディアを含むウィキメディアのウィキでは、これは静的地図を埋め込みます. クリック1回で地図は全画面表示になり、それも対話型の操作ができます.

パラメータは、デフォルトの配置から、左寄せ、右寄せ、あるいは中央寄せに変えます. 属性では拡大率を0から19に設定できます. ゼロで最も縮小し、19で最も拡大します.

の使用法
 { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122.3988, 37.8013] }, "properties": { "title": "Exploratorium", "description": "", "marker-symbol": "museum", "marker-size": "large", "marker-color": "0050d0" } }

タグはGeoJSON editorが生成するような書式設定付きのGeoJSONで、値は空か有効でなければなりません. KartographerはMaki icons （クリエイティブ・コモンズ0でライセンス）でsimplestyle specificationをサポートします. 対応するすべてのアイコンはHelp:Extension:Kartographer/Iconsに一覧があります.

枠線
テンプレートに挿入するには枠線のない地図が適している反面、外枠のある地図は、処理が手書きでもビジュアルエディタを使っても、ページへの直接の埋めこみに適しています.


 * 「frameless」属性で外枠のない地図を埋めこむ:
 * 属性でキャプションを追加.

==

もまた外部パラメータ「text」を受け取り、座標の代わりにリンクテキストを指定します：

タグは と同じgeojsonを含む場合があります.

=== 属性で設定できます. この属性が無い場合は座標が表示されます（例：  が魔法値   や   に設定されます. この事例では  を逐次的なカウンター   で、  を   の値でそれぞれ置き換えます.

GeoJSONにひとつ以上のカウンターがある場合、最初のものの値はリンクテキストとして表示されます. さらにオプションとして、エディタが同じページで同時に複数のカウンターを持つために接尾辞を付加するかもしれません. このように、  は   とは異なるカウンターを持つでしょう.

各カウント用グループに判別しやすい配色をすると有意義でしょう. 経由で追加された全てのデータは  属性が使用されない限り、  で挿入された全てのマップ内で表示されます.

上記は以下のように展開します

、 、そして 属性は、ポップアップ・マップの位置をコントロールします. リンクのテキストには を使用してください（有効なウィキテキスト・マークアップであればどれでも使えます）. 名前のあるグループに対しては、Use を使ってこのタグの内容を追加してください（下記参照）.

マーカー
マーカーは位置を示すのに使うことができます. JSON 形式を使うとこれらの機能を追加することができます.

''メモ: これらの例は を使っています. 用のフォーマットも同じですが、 、 、 の指定が必須(指定しないと保存されたページ上の地図は北アフリカ上に中央寄せされます)である点だけが異なります. ''

結果:

マーカーには画像や記事へのリンクといった情報も含めることができます.

結果 (結果を見るにはマーカーを操作してください):

OSMデータ用のWikidata IDはgeoshapeサービスを利用して境界をハイライトさせるのに使うことができます.

結果:

Wikidata IDは指定した領域を除いて地図全体をマスクするのに使うことができます.

結果:

マーカーに数字を付けられます.

結果:

マーカーに文字を使うことができます.

結果:

featureの集合を使って異なるサイズの地図マーカーを複数追加します.

結果:

様々な色の地図マーカーと様々なカウンターのグループを追加します.

結果:


 * 地図マーカーにはRBG 値 ("rgb color picker"でインターネット検索するといくつかの選択肢が見つかるでしょう)を持つ任意の色を使うことができます.
 * マーカーのサイズには3種類あります: small、medium、large.
 * 別の場所で作成したGeoJSONをコピーして(ライセンシングと著作権の制約に従って) maplink (例)に貼り付けることができます.
 * ウィキボヤージュで地図を作成している場合は、グループ(下記参照)を使うのは良いアイデアでしょう.
 * 自分の地図への外部データ追加についてもっと知りたい場合は外部データセクションを参照.

グループ
ウィキボヤージュのプロジェクトで使う場合には、どこか別の場所で定義されたデータからマップを表示させる必要があります. 例えば、タグで定義された興味深い場所(POI)が複数あっても、全てを表示する共通の地図はページ脇にひとつです.

グルーピングのコンセプトにより、編集者は複数の 及び タグ間でデータを共有できます. .

デフォルトで、 または タグ内部のデータはそのひとつのタグ用にだけ表示され、他の箇所では表示されません.

や で   属性を指定している場合、タグ内のデータは同じグループ名を持つ他のデータと一緒に名前付きのグループに置かれます. その結果、同じグループ名のタグは全て同じ地図データを表示し、それぞれのタグはグループに逐次データを追加できます.

タグは 属性を指定することで、グループへの所属いかんに関わらず、他のグループも表示できます. カンマ区切りの複数のグループ名が指定できます. グループ名では英小文字だけを使えます. 以下のマトリックスはそれぞれのタグでどんなデータが表示されるかを示しています.

外部データ
 { "type": "ExternalData", "service": "geoshape", "ids": "Q797" }

GeoJSONを使ったポリゴン描画に加えて、よく知られた地理オブジェクトのアウトラインを、OpenStreetMapデータベース内でも同様にマークされている場合にそのウィキデータIDで取得することができます. 例えば、アラスカに対応するウィキデータの項目はQ797であり、「external data」の出典を使ってマップ上に描画することができます. カンマ区切りで複数のIDが指定されている場合もあります. 興味深いエリアにマスクを掛けるには、「geoshape」サービスを利用します. これを反転して、それ以外の全てにマスクを掛けるには「geomask」サービスを使います.

Wikidata クエリ経由でのGeoShape
 { "type": "ExternalData", "service": "geoshape", "query": " SELECT ?id ?head (SAMPLE(?img) as ?img)   (min(?partyId) as ?party)   (if(?party = '0', '#800000', if(?party = '1', '#000080', '#008000')) as ?fill)  (concat(, ?headLabel, ) as ?title)  (concat(?stateLabel, '\\n', '') as ?description) WHERE {    ?id wdt:P31 wd:Q35657 .  ?id wdt:P6 ?head .  ?head wdt:P102 ?party .  BIND(if(?party = wd:Q29468, '0', if(?party = wd:Q29552, '1', '2')) as ?partyId)   SERVICE wikibase:label {    bd:serviceParam wikibase:language 'en' .    ?head rdfs:label ?headLabel .    ?id rdfs:label ?stateLabel .  }  OPTIONAL {    ?head wdt:P18 ?img .  }  ?link schema:about ?head .  ?link schema:isPartOf  . } GROUP BY ?id ?head ?headLabel ?link ?stateLabel "}

これはウィキデータのIDがよく知られている場合のシンプルなユースケースには役立ちますが、ウィキデータのクエリの結果としてIDの一覧を取得したいような場合があります. あるSPARQLのクエリは結果のID列にある全米の州の一覧を取得し、geoshapesサービスはそれぞれの州に幾何的なアウトラインを追加します. SPARQLクエリ結果内の他の全ての列は「プロパティ」オブジェクト内の値になります. 「fill」列は州の色を変更します. 「title」列は州知事の名前を表示し、「description」列には州の名前と知事の写真を表示するウィキのマークアップがあります. このクエリを編集するには、''' https://query.wikidata.org/#... '''のところの"#"記号の後にあるクエリ・パラメータをコピーします:

コモンズのマップデータ

 * 詳細情報: 

コモンズ上にストアされているマップデータは地図上に描画することができます. 例, c:Data:Neighbourhoods/New York City.map:  { "type": "ExternalData", "service": "page", "title": "Neighbourhoods/New York City.map" }

複数のデータ種別を組み合わせる
 [ {    "type": "ExternalData", "service": "geoshape", "ids": "Q13518258", "properties": { "stroke": "#ffb100", "stroke-width": 6, } },  {    "type": "Feature", "geometry": { "type": "Point", "coordinates": [4.75566, 44.104498] }, "properties": { "title": "Porte de Castellan" } },  {    "type": "Feature", "geometry": { "type": "Point", "coordinates": [4.75829, 44.10258] }, "properties": { "title": "Porte Léon Roche" } } ]

あなたはExternalData、Feature、FeatureCollectionを同時に組み合わせることができます &lt;mapframe> または &lt;maplink> エレメント:

 [ {    "type": "ExternalData", "service": "page", "title": "Neighbourhoods/New York City.map" }, {    "type": "ExternalData", "service": "geoshape", "ids": "Q160409", "properties": { "fill": "#07c63e", "title": "Central Park" } },  {    "type": "Feature", "properties": {"title": "Roosevelt Island", "marker-color": "f01080"}, "geometry": { "type": "Point", "coordinates": [ -73.94511222839355,       40.76734665426719      ]    }  } ]

Commonsの地図データは他の種別のデータと組み合わせることができます:

Wikidata ID エレメントのスタイリング
 { "type": "ExternalData", "service": "geoline", "ids": "Q2108", "properties": { "title": "Highway I-696", "description": "", "stroke": "#ffb100", "stroke-width": 8 } }

外部データ用には、propertiesキーワードを使って、スタイルとタイトルを追加することもできます:

主なスタイルのキーは次のとおりです: "stroke" (color)、"stroke-width"、"stroke-opacity"、"fill" (color), "fill-opacity".

オーバーラップしたエレメント
オーバーラップする地図エレメントはコードに書かれた順序で描画されます. 例えば、ある地図にオーバーラップする2つの線がある場合、1番目と定義された線は2番目と定義された線の下に現れます. 次の例はこれが地図の見た目にどう影響を与えるかを示しています:

 { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {"fill": "#ff0000","fill-opacity": 0.7,"stroke-width": 0}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ], [ 77.926025390625, -24.43714786161562 ], [ 77.926025390625, -25.150257104114733 ] ] ] } }, { "type": "Feature", "properties": {"stroke": "#fffa00","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ] ] } }, { "type": "Feature", "properties": {"stroke": "#000000","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -24.43714786161562 ], [ 80.14251708984374, -25.150257104114733 ] ] } } ] }

上記地図用のコードは3つのエレメントを含み、全てGeoJSONの「feature」機能を使っています. 最初のfeatureは「Polygon」で、赤い矩形で示されています. これに「LineString」featureが2つ続いています. 黄色の線は1番目に定義されているので、黒い線の下に現れています. エレメントぼ描画に使用される階層構造はデータが生のGeoJSON であるか、Wikidata IDのものであるか、あるいは Commonsデータページであるかに関わらず、適用される点に注意してください.

下記地図は最初の例から順序を変えたものです: 1番目に定義された黒い線は、スタックのいちばん下に移動しています:  { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {"stroke": "#000000","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -24.43714786161562 ], [ 80.14251708984374, -25.150257104114733 ] ] } }, { "type": "Feature", "properties": {"fill": "#ff0000","fill-opacity": 0.7,"stroke-width": 0}, "geometry": { "type": "Polygon", "coordinates": [ [ [  77.926025390625,  -25.150257104114733  ],  [  80.14251708984374,  -25.150257104114733  ],  [  80.14251708984374,  -24.43714786161562  ],  [  77.926025390625,  -24.43714786161562  ],  [  77.926025390625,  -25.150257104114733  ]  ]  ]  } }, { "type": "Feature", "properties": {"stroke": "#fffa00","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ] ] } } ] }

レンダリングのオプション
以下の表は の地図をウィキページに表示する際にどのように整形できるかを示しています. 表内には２つのカラムがあります: 1番目は タグ経由でのインタラクティブな地図、2番目は同じオプションのサンプル画像のレンダリングを示しています.

地図の言語
地図ラベルは地図を組み込んで表示するwikiの言語を使用しようとします. その言語が使用できない場合、地図は以下の記述に従ってフォールバック言語を使用します.


 * 1) 要求された言語での値を探す
 * 2) フォールバック言語として指定された(複数)言語での値を探す
 * 3) 翻訳された値を探す
 * 4) その地域の言語でのラベルを探す
 * 5) 値が無い場合には、ラベルを表示しない.

ラベルに使う言語は に続けて希望する言語コードを追加することで指定できます. 日本語（利用可能な場合）でラベルを表示する場合の例： lang="ja".

結果: を使うことができます. これを使うとマッピングされたエリアの言語（本質的に国際化のオプトアウト）で地図のラベルが表示されます. こちらの記事に、どのような時に、なぜ、 lang="local"が必要となるか、そしてOpenStreetMapの多言語データがどのように機能するかについての全般的な説明があります.

属性が無い場合には、wikiが表示される言語で地図が表示されます.

地図言語のフォールバック
はじめに、これらのフォールバックはMediaWiki内のものに従っています. 地図用の言語フォールバックはfallbacks.jsonにストアされており、Mediawikiの設定とは変えることができます. 各WikimediaプロジェクトはPhabricatorで [https://phabricator.wikimedia.org/maniphest/task/edit/form/1/?title=Request%20to%20change%20Maps%20fallback%20for%20XXXX%20Wiki&tags=Maps&description=Please%20provide%20a%20link%20to%20community%20consensus%20for%20this%20change.%0A%0AA%20description%20of%20the%20requested%20fallback%20is%20also%20needed. このフォールバック手順を変更する要求を上げることができます]. より詳細な技術情報はT192701にあります.

地図は、オープンソースのマッピング・プロジェクトであるOpenStreetMapから、全言語用の地図ラベルデータを含めた地図データを使用しています. 表示したい地図が欲しい言語のラベルを提供していない場合は、OpenStreetMapに追加することで、その言語のラベルを追加することができます. はじめての人向けには、OpenStreetMap初心者ガイドや命名の慣習についてのガイドなどがあります.

A community can decide to change its language fallbacks
Read all about changing your language's fallbacks on the Map Improvements project page.

関連項目

 * 地図用の利用規約
 * Help:VisualEditor/Maps - How to add and edit maps with the visual editor
 * 地図でOSMオブジェクトを使用する際の情報
 * Maps project (2015-2017) - ディスカバリー・チームによる2015年から2017年のWikimediaエンジニアリング活動に関する文書
 * Map improvements 2018 - コラボレーション・チームによる2018年のWikimediaエンジニアリング活動に関する文書
 * Kartographer開発者ガイド