2017-10-27 3 views
-1

나는 현재 위치를 쉽게 식별 할 수 있도록 최신 마커를 다른 색상이나 이미지로 표시해야한다는 점에서 일부 마커가 있습니다. 모든 마커는 하나의 색상이어야하며 최신 마커는 다른 색상이어야합니다.Google지도에서 다른 색상의 최신 마커를 표시하는 방법

function initMap() { 
     var labelIndex = 0; 
     var lstLatLng = []; 
     @if (Model.AssetTrackers[0].latitude.Count > 0) 
     { 
      for (int i = 0; i < Model.AssetTrackers[0].latitude.Count; i++) 
      { 
       @: lstLatLng.push({ lat: @Model.AssetTrackers[0].latitude[i],lng: @Model.AssetTrackers[0].longitude[i],deviceId: '@Model.AssetTrackers[0].deviceid', time: '@Model.AssetTrackers[0].time[i]' }) 
      } 
     } 
     else 
     { 

     } 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 14, 
      center: { lat: 22.791761, lng: 86.177719 }, 
     }); 
     var image = "~/images/pickup.png"; 
     var drawingManager = new google.maps.drawing.DrawingManager({ 
      drawingControl: true, 
      drawingControlOptions: { 
       position: google.maps.ControlPosition.TOP_CENTER, 
       drawingModes: ['polyline'] 
      }, 
      markerOptions: { icon: '~/images/pickup.png' }, 
     }); 
     drawingManager.setMap(map); 
     var pathBetween = new google.maps.Polyline({ 
      path: lstLatLng, 
      strokeColor: '#00B3FD', 
      strokeOpacity: 1.0, 
      strokeWeight: 2 
     }); 
     pathBetween.setMap(map); 
     var polylines = []; 
     var deviceIds = []; 
     function addMarker(markerSettings, label) { 
       var marker = new google.maps.Marker({ 
        position: markerSettings, 
        map: map, 
        title: markerSettings.time, 
        icon: "~/images/location.png" 
       }); 
     } 
     for (var i = 0; i < lstLatLng.length; i++) { 
      addMarker(lstLatLng[i], (i+1).toString()); 
     } 
    } 

답변

0

변경이 :

function addMarker(markerSettings, label) { 
       var marker = new google.maps.Marker({ 
        position: markerSettings, 
        map: map, 
        title: markerSettings.time, 
        icon: "~/images/location.png" 
       }); 
     } 
     for (var i = 0; i < lstLatLng.length; i++) { 
      addMarker(lstLatLng[i], (i+1).toString()); 
     } 

사람 : 아이콘 언급 라인에 기대 :

for (var i = 0; i < lstLatLng.length; i++) { 
    var marker = new google.maps.Marker({ 
     position: lstLatLng[i], 
     map: map, 
     title: markerSettings.time, 
     icon: i === lstLatLng.length-1 : "~/images/differentColour.png" ? "~/images/location.png" 
    }); 
} 
+0

이 말하던. –

+0

내 문제는 i === lstLatLng.length-1로 해결되었지만 제 답변이 올바른지 여부를 확인하십시오. –

0
function initMap() { 
       var labelIndex = 0; 
       var lstLatLng = []; 
       @if (Model.AssetTrackers[0].latitude.Count > 0) 
       { 
        for (int i = 0; i < Model.AssetTrackers[0].latitude.Count; i++) 
        { 
         @: lstLatLng.push({ lat: @Model.AssetTrackers[0].latitude[i],lng: @Model.AssetTrackers[0].longitude[i],deviceId: '@Model.AssetTrackers[0].deviceid', time: '@Model.AssetTrackers[0].time[i]' }) 
        } 
       } 
       else 
       { 

       } 
       var map = new google.maps.Map(document.getElementById('map'), { 
        zoom: 14, 
        center: { lat: 26.791761, lng: 89.177719 }, 
       }); 
       var image = "http://xyz/images/pickup.png"; 
       var drawingManager = new google.maps.drawing.DrawingManager({ 
        drawingControl: true, 
        drawingControlOptions: { 
         position: google.maps.ControlPosition.TOP_CENTER, 
         drawingModes: ['polyline'] 
        }, 
        markerOptions: { icon: 'http://xyz/images/pickup.png' }, 
       }); 
       drawingManager.setMap(map); 
       var pathBetween = new google.maps.Polyline({ 
        path: lstLatLng, 
        strokeColor: '#00B3FD', 
        strokeOpacity: 1.0, 
        strokeWeight: 2 
       }); 
       pathBetween.setMap(map); 
       var polylines = []; 
       var deviceIds = []; 
       function addMarker(markerSettings, label) { 
         var marker = new google.maps.Marker({ 
          position: markerSettings, 
          map: map, 
          title: markerSettings.time, 
          icon: "http://jusco.kernelsphere.com/images/location.png" 
        }); 
         if (i === lstLatLng.length - 1) { 
          var marker = new google.maps.Marker({ 
           position: markerSettings, 
           map: map, 
           title:'hello', 
          }); 
         } 
       } 
       for (var i = 0; i < lstLatLng.length; i++) { 
        addMarker(lstLatLng[i], (i + 1).toString()); 
       } 
       alert(lstLatLng.length); 
       alert(i); 
      }