###前提・実現したいこと
OSMにGeojsonデータを読み込んで、カテゴリ毎に違ったアイコンを表示したいと思っています(Leaflet.js使用)。
Geojsonを読み込んでマーカーを立てて、ポップアップさせるところまでは出来たのですが、Javascriptを理解していないせいか、チュートリアルを見てもどうもその後がちんぷんかんぷんです。
###該当のソースコード
Javascript
1$.getJSON("geojson.php", function (data) { 2 3 var geojson = L.geoJson(data, { 4 onEachFeature: function (feature, layer) { 5 layer.bindPopup('<b>' + feature.properties.name + '</b><br />' + feature.properties.address); 6 } 7 8 }); 9 10 geojson.addTo(map); 11 12});
json
1{ 2 "type": "FeatureCollection", 3 "features": [{ 4 "type": "Feature", 5 "geometry": { 6 "type": "Point", 7 "coordinates": ["140.10", "39.60"] 8 }, 9 "properties": { 10 "name": "鈴木商店", 11 "address": "宮城県仙台市青葉区", 12 "category": "1" 13 } 14 }, { 15 "type": "Feature", 16 "geometry": { 17 "type": "Point", 18 "coordinates": ["140.00", "39.40"] 19 }, 20 "properties": { 21 "name": "佐藤水産", 22 "address": "宮城県名取市", 23 "category": "2" 24 } 25 }
###試したこと
IF分岐を考える前に、とりあえずカスタムマーカーに変えてみようと、Leaflet.jsのチュートリアルを参考にしてみましたが、早くもこの段階でつまずいてしまいました。
Javascript
1var greenIcon = L.icon({ 2 iconUrl: 'leaf-green.png', 3 shadowUrl: 'leaf-shadow.png', 4 5 iconSize: [38, 95], // size of the icon 6 shadowSize: [50, 64], // size of the shadow 7 iconAnchor: [22, 94], // point of the icon which will correspond to marker's location 8 shadowAnchor: [4, 62], // the same for the shadow 9 popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor 10});
を定義し、
Javascript
1L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map).bindPopup("I am a green leaf.");
を、前述した「geojson.addTo(map);」の前に差し込もうにも、どこをどう置き換えたらいいか分かりません。また、カテゴリ別にアイコンを表示するためのIF分岐もこのブロックの中でやるのでしょうか。
OSMのカスタマイズについては、GoogleMapsと違ってなかなか目的の情報に辿り着かず、書籍も見当たらないため、かなり苦戦しておりました。ご指導いただけたら幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/29 17:56
2016/04/29 18:19
2016/04/29 18:27