在使用react-google-maps库中的InfoWindow组件向内容添加图片时,可以通过以下步骤完成:
import React, { useState } from 'react';
import { GoogleMap, Marker, InfoWindow } from 'react-google-maps';
const MapWithInfoWindow = () => {
const [selectedMarker, setSelectedMarker] = useState(null);
const [imageURL, setImageURL] = useState('');
const markers = [
{ id: 1, position: { lat: 37.7749, lng: -122.4194 }, imageURL: 'https://example.com/image1.jpg' },
{ id: 2, position: { lat: 37.7749, lng: -122.4294 }, imageURL: 'https://example.com/image2.jpg' },
// Add more markers with their respective image URLs
];
const handleMarkerClick = (marker) => {
setSelectedMarker(marker);
setImageURL(marker.imageURL);
};
const handleInfoWindowClose = () => {
setSelectedMarker(null);
setImageURL('');
};
return (
<GoogleMap>
{markers.map((marker) => (
<Marker
key={marker.id}
position={marker.position}
onClick={() => handleMarkerClick(marker)}
/>
))}
{selectedMarker && (
<InfoWindow
position={selectedMarker.position}
onCloseClick={handleInfoWindowClose}
>
<div>
<img src={imageURL} alt="Marker Image" />
</div>
</InfoWindow>
)}
</GoogleMap>
);
};
export default MapWithInfoWindow;
在上述代码中,我们创建了一个名为MapWithInfoWindow
的组件。该组件使用useState
钩子来管理选定的标记和要显示的图片URL。markers
数组包含了所有的标记,每个标记都有一个唯一的id
、position
属性和imageURL
属性。
当用户点击标记时,handleMarkerClick
函数会被调用,将选定的标记和对应的图片URL存储在state中。然后,在InfoWindow
组件中,我们根据imageURL
显示图片。
当用户关闭InfoWindow
时,handleInfoWindowClose
函数会被调用,将选定的标记和图片URL重置为空。
请注意,上述代码中的图片URL仅作为示例,你需要将其替换为实际的图片URL。
这是一个基本的示例,你可以根据自己的需求进行修改和扩展。关于react-google-maps库的更多信息和其他组件的使用,请参考腾讯云的相关产品和文档。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云