2016-12-13 60 views
0

嗨我有一個場景,說我有一個標記在給定的位置,如果用戶縮小,以便國家的標記是顯示兩次,你會看到標記兩次。谷歌地圖 - 由於變焦相同標記的多個實例

我想知道是否可以刪除該標記的一個實例,以便一次只顯示其中一個版本。

目前,它會打破覆蓋懸停行爲,因爲地圖API無法確定放置覆蓋的位置,因爲在給定的時間點屏幕上存在2個相同標記的實例。

感謝

+1

您可以放置​​代碼如何創建標記嗎? – Tito

+0

http://www.messagesforjapan.com/messages/map/ 如果您在此處看到並滾動地圖,以便查看澳大利亞地圖的兩個副本,並嘗試將鼠標懸停在右側國家/地區副本上的標記上 使用覆蓋方法的答覆 – TheLearningDev

+0

'google.maps.event.addListener(標記 由於與股票同樣的情況開箱覆蓋作爲標記的,「鼠標懸停」,函數(){ //得到屏幕的xy 變種POS = self.latLngPixel(this.getPosition()); \t \t \t \t \t \t \t \t \t \t //創建一個覆蓋 \t \t \t \t \t變種覆蓋= self.createOverlay(this.message,POS); \t \t \t \t \t \t \t \t \t \t //它添加到DOM \t \t \t \t \t $(self.mapCanvas)。經過(覆蓋); });' – TheLearningDev

回答

0

好像這可能是一個錯誤(或者至少是無意的行爲)。

甲google.maps.Marker用SVG圖標僅呈現在地磚上的中心實例:

var SvgMarker2 = new google.maps.Marker({ 
    map: map, 
    icon: { 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', 
     fillColor: "red", 
     fillOpacity: 1, 
     strokeColor: '#000', 
     strokeWeight: 2, 
     scale: 1 
    }, 
    position: new google.maps.LatLng(-30.4419, -72.1419) 
    }); 

proof of concept fiddle

SVG Icons on Map

代碼片斷:

function initialize() { 
 
    var map = new google.maps.Map(
 
    document.getElementById("map_canvas"), { 
 
     center: new google.maps.LatLng(37.4419, -122.1419), 
 
     zoom: 0, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var marker = new google.maps.Marker({ 
 
    map: map, 
 
    position: map.getCenter() 
 
    }); 
 
    var SvgMarker = new google.maps.Marker({ 
 
    map: map, 
 
    icon: { 
 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z', 
 
     fillColor: "red", 
 
     fillOpacity: 1, 
 
     strokeColor: '#000', 
 
     strokeWeight: 2, 
 
     scale: 1 
 
    }, 
 
    position: new google.maps.LatLng(-30.4419, -122.1419) 
 
    }); 
 
    var SvgMarker2 = new google.maps.Marker({ 
 
    map: map, 
 
    icon: { 
 
     path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', 
 
     fillColor: "red", 
 
     fillOpacity: 1, 
 
     strokeColor: '#000', 
 
     strokeWeight: 2, 
 
     scale: 1 
 
    }, 
 
    position: new google.maps.LatLng(-30.4419, -72.1419) 
 
    }); 
 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

+0

但它帶有一個PNG標記它複製..嗯我會嘗試SVG – TheLearningDev