<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>marker  |  takeHo（たけほ）のへなちょこ台帳</title>
	<atom:link href="https://blog.takeho.com/tag/marker/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.takeho.com</link>
	<description>いわゆる自由帳ってところです。</description>
	<lastBuildDate>Thu, 26 Jun 2025 08:54:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6</generator>

<image>
	<url>https://blog.takeho.com/wp-content/uploads/2024/08/icon-150x150.png</url>
	<title>marker  |  takeHo（たけほ）のへなちょこ台帳</title>
	<link>https://blog.takeho.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>なぜLeaflet.js？OpenStreetMapを表示するために必要な理由と具体的サンプル解説</title>
		<link>https://blog.takeho.com/why-leaflet-js-why-it-is-necessary-to-display-openstreetmap-and-concrete-sample-explanation/</link>
					<comments>https://blog.takeho.com/why-leaflet-js-why-it-is-necessary-to-display-openstreetmap-and-concrete-sample-explanation/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 05:29:07 +0000</pubDate>
				<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[Leaflet]]></category>
		<category><![CDATA[marker]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=1083</guid>

					<description><![CDATA[OpenStreetMap（以下、OSM）は、自由に使える地図データとして人気が高まっていますが、「OSMを使って地図を表示したい」と思っても、そのままではWebページに表示することはできません。 実際に地図を表示・操作 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>OpenStreetMap（以下、OSM）は、自由に使える地図データとして人気が高まっていますが、「OSMを使って地図を表示したい」と思っても、<strong>そのままではWebページに表示することはできません</strong>。</p>



<p>実際に地図を表示・操作するには、「Leaflet.js」のような地図ライブラリ（表示エンジン）が必要です。本記事では、</p>



<ul class="wp-block-list">
<li>なぜライブラリが必要なのか？</li>



<li>なぜLeaflet.jsがおすすめなのか？</li>



<li>実際にOSMをHTMLに表示するサンプルコード</li>



<li>JavaScriptコードの丁寧な解説</li>
</ul>



<p>までを、初心者の方にもわかりやすく紹介していきます。</p>



<h2 class="wp-block-heading">なぜOSMには地図表示用のライブラリが必要なのか？</h2>



<p>OpenStreetMapは「地図を作るためのデータベース」です。たとえば、ある地点の緯度・経度、道路の形状、建物の位置などは持っていますが、</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>「Webページに地図を表示する機能」そのものは提供していません。</strong></p>
</blockquote>



<p>OSMが提供しているのは、「地図データ」や「タイル画像（地図の小さな画像）」です。それをどう表示するかは<strong>利用者側で実装する必要がある</strong>のです。</p>



<h3 class="wp-block-heading">例えるなら…</h3>



<ul class="wp-block-list">
<li><strong>OSM</strong>：素材（野菜や肉など）</li>



<li><strong>Leaflet.js</strong>：料理を作るためのフライパンや調理法</li>



<li><strong>完成したWebマップ</strong>：美味しい料理（ユーザーが見る地図）</li>
</ul>



<p>つまり、OSMだけでは“見える”地図にならず、「表示するための道具（＝ライブラリ）」が必要なのです。</p>



<h2 class="wp-block-heading">なぜLeaflet.jsをおすすめするのか？</h2>



<p>地図ライブラリには他にもさまざまな選択肢があります</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ライブラリ</th><th>特徴</th></tr></thead><tbody><tr><td><strong>Leaflet.js</strong></td><td>軽量、学習コスト低、初心者向け</td></tr><tr><td>OpenLayers</td><td>高機能（GIS向け）、やや複雑</td></tr><tr><td>MapLibre GL JS</td><td>3Dやベクトルタイルに強い、比較的新しい</td></tr><tr><td>CesiumJS</td><td>3D地球・宇宙向け、非常に高機能</td></tr></tbody></table></figure>



<p>この中でも、OSMの表示にLeaflet.jsをおすすめする理由は以下の通りです。</p>



<h3 class="wp-block-heading">Leaflet.jsの強み</h3>



<ol class="wp-block-list">
<li><strong>非常に軽量で高速</strong>（CDNで一発読み込み、サイズも小さい）</li>



<li><strong>設定がシンプル</strong>（地図の表示もマーカー追加も数行）</li>



<li><strong>OSMタイルとの相性が抜群</strong>（デフォルトで利用可能）</li>



<li><strong>コミュニティが活発で情報も多い</strong></li>



<li><strong>モバイル対応も標準装備</strong>（スマホでも快適に動く）</li>
</ol>



<p>特に初心者や中小規模のWebサイト運営者にとって、<strong>手軽に地図を扱える安心感とカスタマイズの柔軟さが両立している点</strong>は他のライブラリにはない魅力です。</p>



<h2 class="wp-block-heading">OpenStreetMapをLeaflet.jsで表示するサンプル</h2>



<p>以下は、Leafletを使ってOSMをHTML上に表示する<strong>最小構成の実装例</strong>です。</p>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html>
&lt;html lang="ja">
&lt;head>
  &lt;meta charset="utf-8" />
  &lt;title>OpenStreetMap × Leaflet サンプル&lt;/title>
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0">
  &lt;!-- LeafletのCSS -->
  &lt;link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
  &lt;style>
    #map {
      height: 500px;
    }
  &lt;/style>
&lt;/head>
&lt;body>

&lt;h2>OpenStreetMap 地図表示サンプル&lt;/h2>
&lt;div id="map">&lt;/div>

&lt;!-- LeafletのJS -->
&lt;script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js">&lt;/script>
&lt;script>
  // 地図を表示する領域を指定
  var map = L.map('map').setView(&#91;35.681236, 139.767125], 13); // 東京駅の緯度・経度

  // OpenStreetMapのタイルレイヤーを設定
  L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&amp;copy; OpenStreetMap contributors',
    maxZoom: 19
  }).addTo(map);

  // ピン（マーカー）を追加
  L.marker(&#91;35.681236, 139.767125]).addTo(map)
    .bindPopup('東京駅です')
    .openPopup();
&lt;/script>

&lt;/body>
&lt;/html>
</code></pre>



<h2 class="wp-block-heading">JavaScript部分の解説</h2>



<pre class="wp-block-code"><code>var map = L.map('map').setView(&#91;35.681236, 139.767125], 13);</code></pre>



<ul class="wp-block-list">
<li><code>L.map('map')</code>：IDが<code>map</code>のdivに地図を表示</li>



<li><code>.setView([緯度, 経度], ズーム)</code>：初期表示位置とズーム設定</li>
</ul>



<pre class="wp-block-code"><code>L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&amp;copy; OpenStreetMap contributors',
  maxZoom: 19
}).addTo(map);
</code></pre>



<ul class="wp-block-list">
<li><code>tileLayer()</code>：地図のタイル画像を読み込むURLを設定（ここではOSM公式）</li>



<li><code>{z}/{x}/{y}</code>：ズームレベル・タイル座標を自動で置換して表示</li>



<li><code>addTo(map)</code>：このレイヤーを現在の地図に追加</li>
</ul>



<pre class="wp-block-code"><code>L.marker(&#91;35.681236, 139.767125]).addTo(map)
  .bindPopup('東京駅です')
  .openPopup();
</code></pre>



<ul class="wp-block-list">
<li><code>marker()</code>：指定した緯度・経度にマーカー（ピン）を置く</li>



<li><code>bindPopup()</code>：マーカーをクリックすると表示される吹き出し（ポップアップ）</li>



<li><code>openPopup()</code>：初期表示時に自動で吹き出しを開く</li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/why-leaflet-js-why-it-is-necessary-to-display-openstreetmap-and-concrete-sample-explanation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
