2014-12-26 3 views
-3
    // Aircraft on map 
        var marker = new google.maps.Marker({ 
         position: myLatLng, 
         map: map, 
         icon: image, 
         optimized: false, 
         internalid: planes[15], 
         zIndex: planes[3], 
         rotation: planes[4], 
         mouseovertxt: '<b>'+planes[11]+'</b><br />'+planes[0]+'-'+planes[13]+'-'+planes[14]+'<br />Status: '+planes[16]+'<br />Alt: '+planes[9]+'ft &nbsp; Speed: '+planes[10]+'kts<br />EET: '+planes[17] 

        }); 

        // Aircraft route 
        line = new google.maps.Polyline({ 
         path: [dep, myLatLng], 
         strokeColor: "#c3524f", 
         strokeOpacity: 1, 
         strokeWeight: 2, 
         geodesic: true, 
         map: map, 
         polylineID: i, 
         visible: true 
         }); 
        line2 = new google.maps.Polyline({ 
         path: [myLatLng, arr], 
         strokeColor: "#c3524f", 
         strokeOpacity: .5, 
         strokeWeight: 2, 
         geodesic: true, 
         map: map, 
         polylineID: i, 
         visible: true 
         }); 

        // On mouse over 
        google.maps.event.addListener(marker, 'mouseover', function() { 
         infowindow.setContent(this.mouseovertxt); 
         infowindow.open(map, this); 
         line.setVisible(false); 
         line2.setVisible(false);  
        }); 

        // On mouse out 
        google.maps.event.addListener(marker, 'mouseout', function() { 
         infowindow.close(); 
         line.setVisible(true); 
         line2.setVisible(true); 
        }); 


       } 
      } 
      setMarkers(map, planes); 


     }); 

Прямо сейчас я перевернул видимость линий, чтобы показать, что появляются правильные линии, но только один из них не изменится видно, независимо от того, что маркера наведения. Это потому, что у меня есть только один маркер, или есть простое исправление? Кроме того, я попытался исправить ошибку прокрутки, но не повезло. Попробуем еще немного.Google Maps API v3 ломаной видны, когда маркер mousover

+0

Что делает код выглядеть для маркеров ("что маркер ")? Как выглядит ваш код карты? Просьба представить [Минимальный, полный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

+0

Вы сказали: «В принципе, я хочу, чтобы ломаная линия отображалась только при наведении/наведении указателя мыши». Что вы сделали, чтобы попытаться это сделать? В вашем коде карты пока нет. – geocodezip

+0

Хорошо новый пример. Посмотрите на следующее: http://jsfiddle.net/s93sad03/37/. Я хочу только показать черную полилинию при наведении/наведении указателя мыши на маркер, как мне это сделать? Я попытался положить новую полилинию внутри этого addListener, но я не мог понять, как удалить его снова. Можно ли, например, определить polyline'visible: false 'в полилинии, а в событии mouseover определить polyline'visible: true'? Спасибо – SteveHI

ответ

0

Возможный подход:

магазин линия как свойства маркеров, чем вы можете получить доступ к ним легко в мышиных обработчиках:

    // Aircraft on map 
        var marker = new google.maps.Marker({ 
         position: myLatLng, 
         map: map, 
         icon: image, 
         optimized: false, 
         internalid: planes[15], 
         zIndex: planes[3], 
         rotation: planes[4], 
         line1:new google.maps.Polyline({ 
         path: [dep, myLatLng], 
         strokeColor: "#c3524f", 
         strokeOpacity: 1, 
         strokeWeight: 2, 
         geodesic: true, 
         map: map, 
         polylineID: i, 
         visible: true 
         }), 
         line2:new google.maps.Polyline({ 
         path: [myLatLng, arr], 
         strokeColor: "#c3524f", 
         strokeOpacity: .5, 
         strokeWeight: 2, 
         geodesic: true, 
         map: map, 
         polylineID: i, 
         visible: true 
         }), 
         mouseovertxt: '<b>'+planes[11]+'</b><br />'+planes[0]+'-'+planes[13]+'-'+planes[14]+'<br />Status: '+planes[16]+'<br />Alt: '+planes[9]+'ft &nbsp; Speed: '+planes[10]+'kts<br />EET: '+planes[17] 

        }); 

        // On mouse over 
        google.maps.event.addListener(marker, 'mouseover', function() { 
         infowindow.setContent(this.mouseovertxt); 
         infowindow.open(map, this); 
         this.get('line1').setVisible(false); 
         this.get('line2').setVisible(false); 

        }); 


        // On mouse out 
        google.maps.event.addListener(marker, 'mouseout', function() { 
         infowindow.close(); 
         this.get('line1').setVisible(true); 
         this.get('line2').setVisible(true); 
        }); 
+0

Работали, как шарм, спасибо! – SteveHI

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