| リーフレット | |
|---|---|
| 原作者 | ヴォロディミル・アガフォンキン |
| 初回リリース | 2011年5月13日 (2011年5月13日) |
| 安定版リリース | |
| リポジトリ | |
| 書かれた | JavaScript |
| プラットフォーム | ブラウザのサポートを参照してください |
| タイプ | JavaScriptライブラリ |
| ライセンス | BSD-2条項[ 2 ] |
| Webサイト | leafletjs.com |
Leafletは、Webマッピングアプリケーションの構築に使用されるJavaScriptライブラリです。GISの経験がない開発者でも、公開サーバー上にホストされているタイル化されたWebマップを表示できます。オプションでタイルオーバーレイも使用できます。GeoJSONファイルから地物データを読み込み、スタイルを設定したり、クリックするとポップアップが表示されるマーカーなどのインタラクティブなレイヤーを作成したりできます。
2011年に初めてリリースされ、[ 3 ] HTML5とCSS3をサポートし、ほとんどのモバイルおよびデスクトッププラットフォームをサポートしています。ユーザーには、FourSquare、Pinterest、Flickr、USGSなどがあります。
Leafletはオープンソースであり、2013年にMapboxに入社したウクライナの開発者Volodymyr Agafonkinによって開発されました。 [ 4 ]

Leafletの典型的な使用法は、Leafletの「マップ」要素をdivなどのHTML要素にバインドすることです。その後、レイヤーとマーカーがマップ要素に追加されます。
< html > < head > < title > Leaflet マップの例</ title > <!-- Leaflet CSS ファイルへのリンク --> < link rel = "stylesheet" href = "https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" /> <!-- Leaflet JavaScript ファイルへのリンク --> < script src = "https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" ></ script > < style > # map { height : 250 px ; width : 400 px ; border : 1 px solid gray ; } </ style > </ head > < body > < div id = "map" ></ div > < script > // マップを初期化しますvar map = L . map ( 'map' ). setView ([ 51.505 , - 0.09 ], 13 );// タイル レイヤーを追加します (URL を変更することで、別のマップ スタイルを選択できます) L . tileLayer ( 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' , { attribution : '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors' }). addTo ( map );// 特定の半径と色で円オーバーレイを追加します。var circle = L . circle ( [ 51.508 , - 0.11 ], { color : 'red' , radius : 500 // 半径(メートル)}). addTo ( map );// ポップアップでマーカーを追加しますvar marker = L . marker ([ 51.5 , - 0.09 ]). addTo ( map ) . bindPopup ( '<b>Hello World!</b><br/> 私はポップアップです。' );</スクリプト> </本体> </ html >このコード サンプルでは、変数 を介して Leaflet ライブラリ自体にアクセスできますL。
Leafletは、 Web Map Service(WMS)レイヤー、GeoJSONレイヤー、ベクターレイヤー、タイルレイヤーをネイティブにサポートしています。その他多くの種類のレイヤーは、プラグインを介してサポートされます。
他の Web マップ ライブラリと同様に、Leaflet によって実装される基本的な表示モデルは、1 つのベースマップと、0 個以上の半透明オーバーレイで構成され、その上に 0 個以上のベクター オブジェクトが表示されます。
主要なLeafletオブジェクトの種類は以下のとおりです。[ 5 ]
投影、変換、 DOMとの対話を管理するためのインターフェースなど、さまざまなユーティリティ クラスもあります。
Leaflet は複数の GIS 標準形式をコアでサポートしており、その他の形式はプラグインでサポートされています。
| 標準 | サポート |
|---|---|
| ジオJSON | geoJson機能を通じて優れたコアサポート[ 6 ] |
| KML、CSV、WKT、TopoJSON、GPX | Leaflet-Omnivoreプラグインでサポートされています[ 7 ] |
| TMS | コアサポートTileLayer[ 8 ] |
| 倉庫管理システム | TileLayer.WMS[ 9 ]サブタイプ によるコアサポート |
| WFS | サードパーティ製のプラグインは存在しますが、サポートされていません。[ 10 ] |
| GML | サポートされていません。[ 11 ] |
Leaflet 0.7はChrome、Firefox、Safari 5+、Opera 12+、IE 7~11をサポートしています。[ 12 ]
Leafletの関数はonEachFeature、例えばGeoJSONデータを扱う際に非常に便利です。この関数には「feature」と「layer」という2つのパラメータがあります。「feature」はGeoJSON内の各オブジェクトにアクセスするためのもので、「layer」はポップアップやツールチップなどを追加するためのものです。
JavaScript の例を以下に示します。
geoJson = L . geoJSON ( geoJsonData 、{ weight : 2 、onEachFeature : getFeature 、style : getStyle }). addTo ( map )とします。const getFeature = ( feature , layer ) => { if ( ! feature . properties . name ) return layer . bindTooltip ( feature . properties . cityName ); layer . bindPopup ( `<ul> <li>Name: ${ feature . properties . cityName } </li> <li>Population: ${ feature . properties . population } </li> </ul>` ) };getFeature関数に「async」キーワードを追加して、 などの Promise を使用することも可能です。GeoJSON の各オブジェクトのプロパティを利用してカスタマイズされた jsonqueries を作成し、例えば都市固有の情報を取得して、など fetch()を使用して表示することができます。layer.bindTooltiplayer.bindPopup
LeafletはOpenLayersと直接比較できます。どちらもオープンソースのクライアントサイド専用のJavaScriptライブラリです。ライブラリ全体のコード行数は約7,000行と、OpenLayersの230,000行(2015年時点)と比べてはるかに小さくなっています。[ 13 ] LeafletのコードサイズはOpenLayersよりも小さくなっています(約123KB [ 14 ]に対し、423KB [ 15 ])。これはモジュール構造によるところが大きいです。コードベースは新しく、JavaScriptの最新機能に加え、HTML5とCSS3を活用しています。しかし、LeafletにはWeb Feature Service(WFS)[ 16 ]やGoogle Web Mercator (EPSG 3857)以外の投影法のネイティブサポートなど、OpenLayersがサポートする機能が欠けています。[ 17 ]
これは、独自仕様のクローズドソースであるGoogle Maps API(2005年登場)やBing Maps APIにも匹敵します。どちらも、ジオコーディング、ルーティング、検索、Google Earthなどの機能との統合といったサービスを提供する重要なサーバー側コンポーネントを組み込んでいます。Google Maps APIはスピードとシンプルさを提供しますが、柔軟性に欠け、Google Mapsサービスへのアクセスにしか使用できません。ただし、Google APIの新しいDataLayer部分では、外部データソースの表示が可能です。[ 18 ]
Leafletは2010年に「Web Maps API」として誕生しました。これは、当時アガフォンキン氏が勤務していた地図サービスプロバイダーCloudMade向けのJavaScriptライブラリです。2011年5月、CloudMadeはLeafletの最初のリリースを発表しました。これはゼロから構築されたものの、古いAPIコードの一部は使用されていました。[ 19 ]
2022年3月、開発者はLeafletのウェブサイトでロシアのウクライナ侵攻に対する行動を促した。 [ 26 ]