2017-03-13 22 views
-1

我想做的東西,你可以在哪裏可以設置你看到的標記的半徑。但它繼續給出錯誤:currentMarker.setVisible不是一個函數。setVisible不是一個函數谷歌地圖

我的代碼如下:

function calcDistance(marker){ 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     pos.latlng = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
     }; 
     var currentMarker = new google.maps.LatLng(marker.lat,marker.lng) 
     var currentPos = new google.maps.LatLng(pos.latlng.lat, pos.latlng.lng) 
     var distance = google.maps.geometry.spherical.computeDistanceBetween(currentMarker, currentPos); 
     console.log((distance/1000).toFixed(2)); 
     if(distance/1000 > radius){ 
      currentMarker.setVisible(false); 
     } 
     else { 
      currentMarker.setVisible(true); 
     } 
    }); 
    } 
} 

調用該函數每次標記製成,這將是下面的代碼:

for (i = 0; i < $winkels.length; i++) { 
    marker[i] = new google.maps.Marker({ 
     position: new google.maps.LatLng($winkels[i].lat, $winkels[i].lng), 
     map: map, 
     latlng: {lat: $winkels[i].lat, lng: $winkels[i].lng} 
    }); 
    calcDistance(marker[i].latlng); 
} 
+0

返回google.maps.LatLng(marker.lat,marker.lng)是什麼? –

+0

這會將對象轉換爲Google地圖標記對象 – Wesleyvans

回答

2

設置可見是連接到new google.maps.Marker({})的方法你正嘗試在google lat-lng點上調用setVisible。

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

是的,謝謝!這一定是它 – Wesleyvans

相關問題