【问题标题】:How to use mouseover in <agm-map> angular 4如何在 <agm-map> angular 4 中使用鼠标悬停
【发布时间】:2026-01-03 11:45:01
【问题描述】:

我在 Angular 4 应用程序中将 AgmMap 用于地图。如何在显示信息窗口的 agm-marker 中实现鼠标悬停事件。我需要在标记鼠标悬停时打开信息窗口。如何在我的函数 onMouseOver 中检索 infowindow 实例以打开它? 这是我的 map.component.html 文件

<agm-map [latitude]="lat" [longitude]="lng">
  <agm-marker *ngFor="let m of markers; let i = index"
          [latitude]="m.lat"
          [longitude]="m.lng"
          (markerClick)="clickedMarker(m, i)"
          [iconUrl]="m.iconUrl">
          <agm-info-window>{{m.label}}</agm-info-window>
  </agm-marker>
</agm-map>

和map.component.ts文件

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { AlertService, AuthenticationService } from '../_services/index';
import { Ng4DropdownModule } from 'ng4-material-dropdown';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

@Component({
   moduleId: module.id,
  templateUrl: './map.component.html',
  styleUrls: ['./map.component.css']
})

export class MapComponent implements OnInit {
   title: string = 'My first AGM project';  
  lat: number = 51.673858;
  lng: number = 7.815982;

  ngOnInit() {
  }

  markers: marker[] = [
      {
          lat: 51.673858,
          lng: 7.815982,
          label: 'Map A',
          draggable: true,
          iconUrl:'http://maps.google.com/mapfiles/ms/icons/green.png'
      },
      {
          lat: 51.373858,
          lng: 7.215982,
          label: 'Map B',
          draggable: false,
          iconUrl:'http://maps.google.com/mapfiles/ms/icons/red.png'
      },
      {
          lat: 51.723858,
          lng: 7.895982,
          label: 'Map C',
          draggable: true,
          iconUrl:'http://maps.google.com/mapfiles/ms/icons/yellow.png'
      }
  ];

  constructor() {
   }

   clickedMarker(marker:marker, index:number)
   {
    console.log('Clicked Marker:'+ marker.label+' at index'+index);
   }


}
interface marker {
    lat: number;
    lng: number;
    label?: string;
    draggable: boolean;
    iconUrl?: string;
}

你能帮帮我吗? AgmMap如何实现鼠标悬停事件?

【问题讨论】:

    标签: angular typescript angular2-services


    【解决方案1】:

    您可以使用(mouseOver)="mouseOver($event)"

    <agm-marker *ngFor="let m of markers; let i = index" (markerClick)="clickedMarker(m,i)" [latitude]="m.lati" [longitude]="m.longi"
     (mouseOver)="mouseOver($event)">
    </agm-marker>
    

    【讨论】:

    • 谢谢@Sajeetharan,mouseOver 事件被调用.. 你能告诉我如何在鼠标悬停时显示信息窗口吗?
    • 只需创建一个新实例并调用 show。标记是否有帮助
    • 这根本没有帮助。它只是展示了如何处理 mouseOver 事件,但没有关于如何显示信息窗口的信息。
    • @Merdekar 你能提供你用过的代码吗?
    • @John 根据您提出问题的日期,我相信您已经解决了问题。 {{m.label}}
      {{m.message}}