4

當我添加帶有圖標提交的標記時,它會顯示爲默認標記,但是當我更新位置時,它開始顯示爲我想要的自定義圖標。角度谷歌地圖自定義圖標只適用於標記更新時

map.html

<ui-gmap-google-map center="map.center" 
      control="map.control" 
      zoom="map.zoom" 
      options="map.options" 
      bounds="map.bounds" 
      draggable="true"> 
    <ui-gmap-markers 
      models="markerArray" 
      coords="'self'" 
      icon="'icon'"> 
    </ui-gmap-markers> 
</ui-gmap-google-map> 

map.js/addMarker(把該標記時,用默認圖標)

function addMarker(markerId, latitude, longitude, icon, iconSize) { 

    markerIconSize = new google.maps.Size(iconSize[0],iconSize[1]); 

    var marker = { 
     id: markerId, 
     latitude: latitude, 
     longitude: longitude, 
     icon: { 
      url: icon, 
      scaledSize: markerIconSize 
     } 
    }; 
    $scope.markers.push(marker); 
    $scope.markerArray = $scope.markers; 
} 

map.js/updateMarker(更新與定製圖標協調)

function updateMarker(markerId,latitude,longitude) { 

    var marker = _.find($scope.markerArray, function(marker) { 
      return marker.id = markerId; 
    }); 

    marker.latitude = latitude; 
    marker.longitude = longitude; 
} 

回答

2

我能想到的情侶事物: 嘗試對圖標網址進行硬編碼,看看是否有效。 然後嘗試分裂標記聲明,所以:

var marker; 
var markerOptions = { 
    id: markerId, 
    latitude: latitude, 
    longitude: longitude, 
    icon: { 
     url: icon, 
     scaledSize: markerIconSize 
    } 
}; 
marker = new google.maps.Marker(markerOptions); 
$scope.markers.push(marker); 
$scope.markerArray = $scope.markers; 

這是我做我的地圖工作的話,只是給你一個建議。希望它也適合你。