我剛剛在我的谷歌地圖上添加了一個MarkerClusterer。它工作得很好。markerClusterer點擊放大
我只是想知道是否有任何方式來調整集羣點擊時的放大行爲。如果可能,我想改變縮放級別。
有沒有辦法達到這個目的?
感謝
我剛剛在我的谷歌地圖上添加了一個MarkerClusterer。它工作得很好。markerClusterer點擊放大
我只是想知道是否有任何方式來調整集羣點擊時的放大行爲。如果可能,我想改變縮放級別。
有沒有辦法達到這個目的?
感謝
我按照建議修改了clusterclick事件:
/**
* Triggers the clusterclick event and zoom's if the option is set.
*/
ClusterIcon.prototype.triggerClusterClick = function() {
var markerClusterer = this.cluster_.getMarkerClusterer();
// Trigger the clusterclick event.
google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_);
if (markerClusterer.isZoomOnClick()) {
// Zoom into the cluster.
// this.map_.fitBounds(this.cluster_.getBounds());
// modified zoom in function
this.map_.setZoom(markerClusterer.getMaxZoom()+1);
}
};
它很棒!非常感謝
它出現的API只會讓你切換縮放功能性
http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html
所以你必須編輯源,這似乎是在線1055
/**
* Triggers the clusterclick event and zoom's if the option is set.
*/
ClusterIcon.prototype.triggerClusterClick = function() {
var markerClusterer = this.cluster_.getMarkerClusterer();
// Trigger the clusterclick event.
google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_);
if (markerClusterer.isZoomOnClick()) {
// Zoom into the cluster.
this.map_.fitBounds(this.cluster_.getBounds());
}
};
已經有一個更新MarkerClusterer源代碼,允許單擊事件更容易訪問:
google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
// your code here
});
其中「markerCluster」 IST的MarkerCluster對象。 裏面的功能,您還可以訪問
cluster.getCenter();
cluster.getMarkers();
cluster.getSize();
我使用它來切換到不同的地圖類型,因爲我用更簡單的概述定製片集合較低縮放級別:
map.setCenter(cluster.getCenter()); // zoom to the cluster center
map.setMapTypeId(google.maps.MapTypeId.ROADMAP); // switch map type
map.setOptions(myMapOptions); // apply some other map options (optional)
問候 傑克
這是否記錄在某處? – blacklwhite 2016-02-18 16:31:21
它記錄在這裏: https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/docs/reference.html – 2017-04-04 21:53:44
你可以做到這一點,而不使用監聽器的clusterclick markerClusterer事件修改源代碼:
var mcOptions = {gridSize: 40, maxZoom: 16, zoomOnClick: false, minimumClusterSize: 2};
markerClusterer = new MarkerClusterer(map, markers, mcOptions);
google.maps.event.addListener(markerClusterer, 'clusterclick', function(cluster){
map.setCenter(cluster.getCenter());
map.setZoom(map.getZoom()+1);
});
即。我設置了zoomOnClick = false以更好地控制地圖縮放行爲,以控制每次點擊觸發的縮放量和縮放位置。
如果有人需要在coffeescript中編寫這個函數,我把最上面的答案和標記的答案合併成一個代碼片段。
mcOptions =
maxZoom: 16
markerCluster = new MarkerClusterer map, markers, mcOptions
# listener if a cluster is clicked
google.maps.event.addListener markerCluster, "clusterclick", (cluster) ->
if markerCluster.isZoomOnClick() # default is true
#get bounds of cluster
map.fitBounds cluster.getBounds()
#zoom in to max zoom plus one.
map.setZoom markerCluster.getMaxZoom() + 1
此代碼檢查是放大點擊設置。如果它放大到最大變焦加1,並居中在集羣上。非常簡單的代碼。
上述代碼與原始代碼有什麼區別? – Kabkee 2015-09-11 06:12:24
@Kabkee不同的是,這實際上改變了放大和上面的代碼是一個骨架。 – Whitecat 2017-05-14 05:26:33