【发布时间】:2020-06-19 07:04:08
【问题描述】:
我正在使用DrawingManager 绘制自定义多边形。
我想用道具修改多边形的fillColor。我该怎么办?
import React from 'react'
import GoogleMap from 'google-map-react'
export default (props: any) => {
let {color} = props
const handleGoogleMapApi = (google: any) => {
console.log(google)
var drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.POLYGON,
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: ['polygon'],
},
polygonOptions: {
strokeWeight: 5,
fillOpacity: 0.45,
fillColor: color,
},
})
google.maps.event.addListener(drawingManager, 'polygoncomplete', (polygon: any) => {
let points: any = polygon.getPath().getArray()
points.forEach((point: any) => {
const {lat, lng} = point
console.log(lat(), lng())
})
})
google.map.setMapTypeId('satellite')
drawingManager.setMap(google.map)
}
return (
<div style={{height: '60%', width: '100%'}}>
<GoogleMap
defaultCenter={{lat: -19.810968444640704, lng: -43.54377112158203}}
defaultZoom={15}
yesIWantToUseGoogleMapApiInternals
onGoogleApiLoaded={handleGoogleMapApi}
onChange={handleGoogleMapApi}
bootstrapURLKeys={{libraries: 'drawing', key: `${process.env.REACT_APP_PROVIDER_GOOGLE}`}}
/>
</div>
)
}
【问题讨论】:
-
你是如何在渲染中使用这个组件的?只需将颜色作为道具传递
-
@cura 我不认为您可以在创建形状后更改形状的颜色,但您可以更改用户创建的每个新形状的颜色。你想达到什么目标?更改现有形状颜色或新形状?
-
解释你为每个多边形添加特殊颜色作为变量的含义或解释更多?