4

Когда я добавляю маркер с отмеченным значком, он отображается как маркер по умолчанию, однако, когда я обновляю местоположение за какое-то время, он начинает отображаться как пользовательский значок, который я хочу ,Угловая карта Google Maps Пользовательский значок работает только при обновлении маркера

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

Пара вещей, которые я мог бы подумать: Попробуйте жестко кодировать URL-адрес значка и посмотреть, работает ли это. Затем попытайтесь раздельной декларацией маркеров, так:

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; 

Это, как я сделал мою карту работу так, чтобы просто дать вам предложение. Надеюсь, это сработает и для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^