所以我对React比较陌生,这是我第一次使用react-google-maps,我试图创建一个带有Map的页面,用户可以在其中绘制多边形,但我得到了以下结果:
我的Map
我似乎不明白为什么我有同样的按钮两次。以下是我的代码:
import { compose, withProps } from "recompose";
import { withScriptjs, withGoogleMap, GoogleMap } from "react-google-maps";
const center = {
lat: 48.866667,
lng: 2.333333,
}
const {
DrawingManager
} = require("react-google-maps/lib/components/drawing/DrawingManager");
const DrawingManagerWrapper = compose(
withProps({
googleMapURL: `https://maps.googleapis.com/maps/api/js?key={API_KEY}=3.exp&libraries=geometry,drawing,places`,
loadingElement: <div style={{ height: `100%` }} />,
containerElement: <div style={{ height: `400px` }} />,
mapElement: <div style={{ height: `100%` }} />
}),
withScriptjs,
withGoogleMap
)(props => (
<GoogleMap
defaultZoom={12}
defaultCenter={new window.google.maps.LatLng(51.509865, -0.118092)}
>
<DrawingManager
setMap={GoogleMap}
overlaycomplete={props.onComplete}
defaultOptions={{
drawingControl: true,
drawingControlOptions: {
style: window.google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: window.google.maps.ControlPosition.TOP_CENTER,
drawingModes: [window.google.maps.drawing.OverlayType.POLYGON]
},
polygonOptions: {
fillColor: "#199ee0",
fillOpacity: 0.2,
strokeWeight: 2,
strokeColor: "#113460",
clickable: true,
editable: true,
geodesic: false,
visible: true,
zIndex: 1,
}
}}
/>
</GoogleMap>
));
export default DrawingManagerWrapper; ```
[1]: https://i.stack.imgur.com/VjGP8.png
2条答案
按热度按时间ahy6op9u1#
您的问题看起来像DrawingManager被调用了两次,因此有2个按钮,如您的屏幕截图所示。这是您使用的所有代码吗?我使用this code,我似乎无法复制它。
另一件事,请检查您的谷歌MapJavascript脚本标记是否正确编码,在您的代码中似乎有
=3.exp
后的API键,我相信它应该是&v=3.exp
。另外,你也可以查看@react-google-maps/API库,因为它是react-google-maps库(可惜没有维护)的完全重写。下面是在这个库中实现DrawingManager的sample code,下面是代码片段:
okxuctiv2#
以下是关于多边形和绘图工具全部内容: