源碼發現
『壹』 百度地圖聚合功能自定義聚合文字
研究網路地圖聚合源碼發現,如果打算自定義文字需要修改兩處:
一、修改 BMapLib.MarkerClusterer.js 插件中 Cluster.prototype.updateClusterMarker 方法,實現過程如下:
方法中: this._clusterMarker.setText(this._markers.length); 表示, 聚合點顯示的文字內容是 當前 Cluster 類 _markers 屬性 的 長度;
二、修改 TextIconOverlay.js 中的 構造方法 和 樣式方法
查看 TextIconOverlay.js 的源碼發現, text 只支持 數字類型的值,而且和 styles 屬性綁定,需要修改constructor 方法, 和 設置屬性的方法。
如上,知道了聚合的文字是 Cluster.prototype.updateClusterMarker 方法 , 那麼我們需要進行以下步驟:
通過查看網路地圖聚合源碼,發現 Cluster 類調用了 marker 的 getPosition 和 getMap 方法,我們需要自定義這倆方法如下:
最終,我們實現了自定義 網路地圖點聚合文字 信息。
附Github: https://github.com/sphenginx/vue-slider
類 BMapLib.MarkerClusterer
『貳』 java查看hashmap的源碼發現並沒有向entrySet中裝入元素,而去可以如下遍歷。
幫助文檔上說:返回此映射所包含的映射關系的
collection
視圖。在返回的集合中,每個元素都是一個
Map.Entry。
entrySet僅僅是一個視圖而已,沒有具體的數據,其實還是從HashMap中獲取數據的。具體可以看entry和entrySet的源代碼就知道數據其實還是來自於table。
『叄』 在chrome上看源代碼發現如::before,不知道什麼意思
我也發現這個問提了,搜索後發現都是在說css的,但是它是出現在HTML代碼里的。
然後我自己寫例子試了試,結果是 在css裡面用 ::before,
是瀏覽器的代碼查看器把它顯示成::before了。
下面是自己寫的源碼
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Title</title>
<style>
#test::before{
content:'bb';
}
</style>
</head>
<body>
<divid="test">
aa
</div>
</body>
</html>
這是瀏覽器查看器的畫面
而且冒出來一個這個玩意,原理不懂,
不過,在瀏覽器的查看器里看到的 ::before 是這么來的。