データベースから受け取ったCSVファイルのデータを「OpenStreetMap」上にマーカー付きで表示させたい
初心者の質問で分かりづらい点があるかと存じますが、ご容赦くださいませ。
OpenStreetMapとLeaflet ライブラリを使用しHTML上に地図を表示させる事まではできましたが、CSVファイル内の緯度経度情報を使い、地図上に表示する方法がわかりません。 お分かりになる方、ご教授頂けますと幸いで御座います。宜しくお願い致します。
地図描画に使用したソースコード
<div id="map"></div> <script src="js/map/leaflet.js"></script> <script src="js/map/leaflet-heat.js"></script> <script src="js/map/leaflet.rotatedMarker.js"></script> <script src="js/map/OSMBuildings-Leaflet.js"></script> <script src="js/map/leaflet-hash.js"></script> <script src="js/map/Autolinker.min.js"></script> <script src="js/map/leaflet.markercluster.js"></script> <script src="data/listcsv.js"></script> <script> L.ImageOverlay.include({ getBounds: function () { return this._bounds; } }); var map = L.map('map', { zoomControl:true, maxZoom:28, minZoom:1 }).fitBounds([[35.685721,139.313577],[35.681259,139.520944]]); var hash = new L.Hash(map); map.attributionControl.addAttribution('<a href="https://github.com/tomchadwin/qgis2web" target="_blank">qgis2web</a>'); var feature_group = new L.featureGroup([]); var bounds_group = new L.featureGroup([]); var raster_group = new L.LayerGroup([]); var basemap0 = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors,<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>', maxZoom: 28 }); basemap0.addTo(map); var basemap1 = L.tileLayer('http://a.tile.stamen.com/terrain/{z}/{x}/{y}.png', { attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>,<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> —Map data: © <a href="http://openstreetmap.org">OpenStreetMap</a>contributors,<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>', maxZoom: 18 }); </script>
読み込みたいCSVファイル(data.csv)
id,title,address,latlon 1,テスト1,武蔵境駅,35.702243 139.550422 2,テスト2,新宿駅,35.689975 139.699081
試したこと
参考サイトを見つけ、以下のソースコードを
追加してみましたが、CSVファイルを読み込む事はできませんでした。
omnivore.csv('data.csv', null) .on('ready', function(e) { drawMap(e.target.toGeoJSON()); }) .on('error', function(e) { console.log(e.error[0].message); }); function drawMap(shows) { var dataLayer = L.geoJson(shows).addTo(map); dataLayer.on('click', function(e) { var properties = e.layer.feature.properties; L.popup() .setContent('<b>Venue id:</b> ' + properties.id + '<br><b> title: </b>' + properties.title + '<br><b>address: </b>' + properties.address) .setLatLng(e.latlng) .openOn(map); }).addTo(map); map.fitBounds(dataLayer.getBounds());
回答1件
あなたの回答
tips
プレビュー