使用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>



留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題