1

我正在使用Google Maps API顯示許多標記(數千個)。如果我沒有爲標記添加自定義標籤和圖標(幾秒鐘),加載這些標記就可以正常工作,但是當我將自定義標籤和圖標添加到標記時,它們會在移動電話(大約25秒在Android上)。我創建了一個codepen來說明問題:https://codepen.io/anon/pen/qXqpjN在此codepen 5000標記是隨機生成的。當您打開此代碼時,它會在計算機上快速加載,但在移動電話上會很慢。我用下面的代碼來創建每個標記:如果我更換上面與下面的代碼的代碼Gmaps API - 移動圖標和標籤的許多標記加載速度慢

var marker = new google.maps.Marker({ 
    position: myLatLng, 
    label: { 
     color: '#000000', 
     fontWeight: 'bold', 
     text: 'text', 
    }, 
    icon: { 
     labelOrigin: new google.maps.Point(24, 14), 
     url: 'http://reistip.nl/assets/img/gmap/icon/emoticons/icongreenbigprice.png', 
     size: new google.maps.Size(50, 60), 
     origin: new google.maps.Point(0, 0), 
     anchor: new google.maps.Point(11, 40), 
    }, 

}); 

(不包括自定義標籤和圖標標記),它加載罰款:

var marker = new google.maps.Marker({ 
     position: myLatLng, 
     title: 'Hello World!' 
    }); 

我怎麼能在移動電話上加載具有自定義標籤和圖標的標記?

回答

0

你有兩種選擇:聚類和距離。

  • 聚類:將數據與某些算法一起聚集在一起,當用戶放大和縮小時,只顯示羣集中的一個點或全部。
  • 距離:使用空間算法(如KD樹),以便快速選擇接近當前地圖中心的標記。

在手機上,您可以輕鬆地顯示100/200標記,不再顯示。

+0

感謝您的建議。我實際上已經在使用一個集羣庫(markerclustererplus)來對這些標記進行聚類。只要不向標記添加自定義標籤/圖標,在手機上實際顯示5000〜標記就可以正常使用。你或者其他任何人都知道爲什麼在標記上添加標籤/圖標對移動電話上標記的加載速度有如此重大的影響? – user3398797

+0

你應該發佈你的代碼。通常,如果您使用UI線程執行重載處理(如加載位圖等),就會發生這種情況。 – greywolf82

+0

是的,我已經創建了一個codepen:https://codepen.io/anon/pen/qXqpjN它說明了這個問題,得到了優化代碼以提高手機上的標記加載時間的任何提示? – user3398797