使用leafletjs來做分店經緯度資訊可視化處裡
User由於想要將分店資訊串接類似Google Map的可視化
類似全聯的官方網站做資訊優化
https://www.pxmart.com.tw/#/shopList
但GoogleMap其實要用它的API串接功能是要付費的(一般而言應該不想有這塊多餘成本)
沒付費的情況下頂多就只能做iframe內嵌單掉了一些
這裡我改採用另一個策略
改採用leafletjs這套可以做到圖客製化顯示的套件
https://leafletjs.com/
由於可以透過GoogleMap來擷取經緯度資訊
只是我們就不用它的圖層來做設計
搭配OpenStreetMap
https://www.openstreetmap.org/search?query=25.069181447021986%2C%20121.61342333574706#map=11/25.0694/121.6132
這邊我就可以做自己icon的放置與圖層程式的設定控制
第一件事情就是取得分店經緯度列表
第二件事情抓個圖片當作地標icon顯示並且引入leafletjs 的 cdn
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script>
在網面上可以配置一個div來存放圖資資訊
即可將圖層做一個經緯度與資訊的顯示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"> <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script> <div id="my_map" class="col-xs-10" style="height: 670px;"> </div> <script type="text/javascript"> //享亮文具樂園-蘆洲店(25.089025812169325, 121.48200886039216) //享亮文具樂園-東湖店(25.069181447021986, 121.61342333574706) //享亮文具樂園-石牌店(25.116744671458264, 121.51718670505511) //享亮文具樂園-泰山店(25.055713491483292, 121.43344987992977) //享亮文具樂園-木柵店(24.9887004991147, 121.5655959817848) //享亮文具樂園-三峽店(24.94462686021002, 121.3764746338882) //享亮文具樂園-五股店(25.085128171019612, 121.43890430691074) //享亮文具樂園-長安店(25.084450056679398, 121.45857119762924) var mymap = L.map('my_map', { zoomControl: true }).setView([25.089025812169325, 121.48200886039216], 12); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(mymap); var LeafIcon = L.Icon.extend({ options:{ iconSize: [38, 95], iconAnchor: [22, 94], } }); // var shopIcon = new LeafIcon({iconUrl:'images/shop-icon-450x450.png'}); L.marker([25.089025812169325, 121.48200886039216],{icon: shopIcon}) .bindTooltip("享亮文具樂園-蘆洲店").openTooltip().addTo(mymap); L.marker([25.069181447021986, 121.61342333574706],{icon: shopIcon}) .bindTooltip("享亮文具樂園-東湖店").openTooltip().addTo(mymap); L.marker([25.116744671458264, 121.51718670505511],{icon: shopIcon}) .bindTooltip("享亮文具樂園-石牌店").openTooltip().addTo(mymap); L.marker([25.055713491483292, 121.43344987992977],{icon: shopIcon}) .bindTooltip("享亮文具樂園-泰山店").openTooltip().addTo(mymap); L.marker([24.9887004991147, 121.5655959817848],{icon: shopIcon}) .bindTooltip("享亮文具樂園-木柵店").openTooltip().addTo(mymap); L.marker([24.94462686021002, 121.3764746338882],{icon: shopIcon}) .bindTooltip("享亮文具樂園-三峽店").openTooltip().addTo(mymap); L.marker([25.085128171019612, 121.43890430691074],{icon: shopIcon}) .bindTooltip("享亮文具樂園-五股店").openTooltip().addTo(mymap); L.marker([25.084450056679398, 121.45857119762924],{icon: shopIcon}) .bindTooltip("享亮文具樂園-長安店").openTooltip().addTo(mymap); </script> |
留言
張貼留言