编辑:根据指南,有一个名为getMetadata()的方法。我如何使用它来返回props?
描述:
使用React-google-maps包,我已经能够加载带有自己kml文件的Google地图。该KML文件包含多个形状,每个形状后面都有元数据。我想要的是,当用户单击其中一个形状时,他可以看到形状后面的数据,例如弹出窗口。
示例
假设我有一个Google地图,其中包含一个显示两个国家的kml文件。用户悬停在这些国家中的一个上方,并看到一个弹出窗口,显示他所在的国家。他悬停在第二个国家上方并获得相同的结果。当他单击覆盖在国家上方的kml形状时,他会收到更多信息。
这需要我知道一些东西:
- 如何在KML形状上创建悬停效果,显示基于形状的数据
- 如何在KML形状上创建单击事件,显示基于形状的数据
然而,我无法理解如何使这个KML文件交互。
这是我到目前为止所拥有的:
import React, { Component } from 'react';
import { withScriptjs, withGoogleMap, GoogleMap, Marker, KmlLayer } from "react-google-maps"
const MyMapComponent = withScriptjs(withGoogleMap((props) =>
<GoogleMap
defaultZoom={8}
defaultCenter={{ lat: 50.5010789, lng: 4.4764595 }}
>
<KmlLayer
url='https://example.be/kmlfile.kml'
options={{ preserveViewport : false}}
/>
{props.isMarkerShown && <Marker position={{ lat: 50.5010789, lng: 4.4764595 }} />}
</GoogleMap>
))
export default class GoogleMaps extends Component {
render(){
return(
<MyMapComponent
isMarkerShown
googleMapURL="https://maps.googleapis.com/maps/api/js?key=MYKEY&v=3.exp&libraries=geometry,drawing,places"
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `100%` }} />}
mapElement={<div style={{ height: `100%` }} />}
/>
)
}
}