Leaflet.jsでGoogle Maps を表示する
「Leafletでグーグルマップって使えないんですか?」という質問が多かったので書いておきます。
Google Maps Tileを表示する
LeafletでGoogle Mapsの地図を表示するにはプラグインを使う必要があります。
Leaflet pluginsをダウンロードし、「layerフォルダ→tileフォルダ」の中のGoogle.jsを読み込んでください。
また、leaflet以外にGoogle Maps APIも読み込む必要があります。
1 2 3 4 5 6 7 8 9 |
<!-- Google Maps API --> <script src="http://maps.google.com/maps/api/js?v=3&sensor=false"></script> <!-- Leaflet --> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" /> <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet-src.js"></script> <!-- Leaflet Google Maps Plugin --> <script src="Google.js"></script> |
Hello Gmaps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var map = new L.Map('map', {center: new L.LatLng(36.3219088 , 139.0032936), zoom: 13}); var GmapsROA = new L.Google('ROADMAP'); //地図 var GmapsSAT = new L.Google('SATELLITE'); //航空写真 var GmapsHYB = new L.Google('HYBRID'); //航空写真&ラベル var GmapsTER = new L.Google('TERRAIN'); //地形地図 map.addLayer(GmapsROA); map.addControl(new L.Control.Layers({ 'Google Roadmap':GmapsROA, 'Google Satellite':GmapsSAT, 'Google Hybrid':GmapsHYB, 'Google Terrain':GmapsTER }, {})); |
カスタムスタイルを使う
Google Maps API のスタイル指定機能も使えます。
Styled Maps | Google Maps JavaScript API | Google Developers
1 2 3 4 5 6 7 8 9 10 11 12 |
var map = new L.Map('map', {center: new L.LatLng(36.3219088 , 139.0032936), zoom: 13}); //Google Maps のスタイル指定 var styles = [{"elementType":"geometry","stylers":[{"hue":"#ff4400"},{"saturation":-68},{"lightness":-4},{"gamma":0.72}]},{"featureType":"road","elementType":"labels.icon"},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"hue":"#0077ff"},{"gamma":3.1}]},{"featureType":"water","stylers":[{"hue":"#00ccff"},{"gamma":0.44},{"saturation":-33}]},{"featureType":"poi.park","stylers":[{"hue":"#44ff00"},{"saturation":-23}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"hue":"#007fff"},{"gamma":0.77},{"saturation":65},{"lightness":99}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"gamma":0.11},{"weight":5.6},{"saturation":99},{"hue":"#0091ff"},{"lightness":-86}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"lightness":-48},{"hue":"#ff5e00"},{"gamma":1.2},{"saturation":-23}]},{"featureType":"transit","elementType":"labels.text.stroke","stylers":[{"saturation":-64},{"hue":"#ff9100"},{"lightness":16},{"gamma":0.47},{"weight":2.7}]}]; var gMaps= new L.Google('ROADMAP', { mapOptions: { styles: styles } }); map.addLayer(gMaps); map.addControl(new L.Control.Layers( {'Google':gMaps}, {})); |
カスタマイズは、「Google Maps API Styled Map Wizard」や「Google MapBuildr」などのサービスを利用すると便利です。
さぁこれでLeafletを使わない理由は無くなりましたね!
関連記事
-
-
GithubからGeoJSONを検索して地図上に表示するページを作ってみました。
example Google Custom Search APIを使って、Git …
-
-
Fusion TablesとGoogle Mapの連動が革命的に便利になっていた。
誰でも、地図を使った情報配信が出来る時代に…… Fusion Tablesとは「 …
-
-
前橋市のオープンデータを使ってカレンダー(サンプル)を作ってみた
example 年始の記事でこんなことを書きましたが、願いが通じたのか、群馬県前 …
-
-
Google Maps APIにGeoJSONを編集する機能が付いたので、サクッとGeoJSONエディタ作ってみた。
以前、Google Map上にGeoJSONを表示するデータレイヤーについてお伝 …
-
-
住所ドリルダウン検索(ADDRAjax)ライブラリとGoogle Maps APIをカリーで。
おいしいカリーのつくりかた勉強中。 Google Geocodeは住所を与えれば …
-
-
Charlotte(シャーロット)2話に出てきた地図のleaflet版作った。
地理院地図……お前、地理院地図じゃないか! というわけで、leaflet版作って …
-
-
室蘭市の地理情報付きオープンデータ(選挙ポスター掲示場)を使ってみた
example むろらんオープンデータライブラリにて、「選挙ポスター掲示場」とい …
-
-
Google Maps APIで緯度経度を元にプロットしたマーカーの位置がずれる(測地系変換)
某社のAPIから取得した物件データの緯度経度を元にGoogle Map上にプロッ …
-
-
Google Maps APIのちょっとした進化
今まで、Google Maps APIで緯度経度を指定する際は、google.m …
-
-
大阪市のオープンデータを使って、ひったくり事件発生個所を視覚化してみた。
以前、大阪都構想住民投票結果の地図を作った際に、大阪市のオープンデータの中に犯罪 …