setVisible不是谷歌地图的功能

时间:2017-03-13 16:24:27

标签: javascript google-maps

我正在努力设置一些东西,你可以在哪里设置你看到标记的半径。但它继续给出错误:currentMarker.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);
}

1 个答案:

答案 0 :(得分:2)

设置可见是附加到new google.maps.Marker({})的方法,您试图在google lat-lng点上调用setVisible。

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