我正在尝试更改我的地图容器,以便能够在我的地图上绘制多个多边形。这是我对Map所做的更改
import {
Map,
InfoWindow,
Marker,
GoogleApiWrapper,
Polygon
} from 'google-maps-react';
import React, { Component } from 'react';
export class MapContainer extends Component {
renderMarker = loc => {
return <Marker key={loc._id} position={loc} />;
};
renderPolygon = loc => {
console.log(loc);
return (
<Polygon
key={loc._id}
paths={loc}
strokeColor='#0000FF'
strokeOpacity={0.8}
strokeWeight={2}
fillColor='#0000FF'
fillOpacity={0.35}
/>
);
};
render() {
const coords = this.props.initialCenter;
const markerPositions = this.props.markerPositions;
const polygonPositions = this.props.polygonPositions;
const style = this.props.style;
const center = this.props.center;
const paths = this.props.paths;
console.log(this.props.polygonPositions);
return (
<Map
google={this.props.google}
zoom={18}
initialCenter={coords}
style={style}
center={center}
>
{markerPositions.map(this.renderMarker)}
{polygonPositions.map(this.renderPolygon)}
{/* <Polygon
paths={paths}
strokeColor='#0000FF'
strokeOpacity={0.8}
strokeWeight={2}
fillColor='#0000FF'
fillOpacity={0.35}
/> */}
{/* <Polygon
paths={{ paths }}
strokeColor='#0000FF'
strokeOpacity={0.8}
strokeWeight={2}
fillColor='#0000FF'
fillOpacity={0.35}
/> */}
</Map>
);
}
}
export default GoogleApiWrapper({
apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_TEST
})(MapContainer);我可以接收一组多边形并绘制所有多边形,而不是绘制一个多边形,但到目前为止,我的地图还没有加载。
这就是我是如何从服务中获得多边形绘图的:
const polygon = this.props.places.places.map(place => {
return place.location.coordinates.map(values =>
values.map(data => {
return { lat: data[0], lng: data[1] };
})
);
});这是从多边形返回的内容。
console.log(
'POLYGON',
JSON.stringify(polygon[0]),
'MULTIPLOS',
JSON.stringify(polygon)
);POLYGON [[{"lat":41.53113384600326,"lng":-8.619018495082855},{"lat":41.53113384600326,"lng":-8.61851692199707},{"lat":41.53129447698251,"lng":-8.61851692199707},{"lat":41.53129447698251,"lng":-8.619018495082855},{"lat":41.53113384600326,"lng":-8.619018495082855}]]
MULTIPLOS [[[{"lat":41.53113384600326,"lng":-8.619018495082855},{"lat":41.53113384600326,"lng":-8.61851692199707},{"lat":41.53129447698251,"lng":-8.61851692199707},{"lat":41.53129447698251,"lng":-8.619018495082855},{"lat":41.53113384600326,"lng":-8.619018495082855}]],[[{"lat":-8.619018495082855,"lng":41.53113384600326},{"lat":-8.61851692199707,"lng":41.53113384600326},{"lat":-8.61851692199707,"lng":41.53129447698251},{"lat":-8.619018495082855,"lng":41.53129447698251},{"lat":-8.619018495082855,"lng":41.53113384600326}]]]我可以绘制一个多边形,但如果我可以从我的数据库中绘制多个多边形,那就太好了。有什么帮助吗?
发布于 2020-01-30 15:58:27
您将得到一个数组(多边形)数组(单个多边形坐标数组)。因此,如果你遍历“MULTIPLOS”数组,你应该能够绘制该数组中的所有多边形。
https://stackoverflow.com/questions/59979770
复制相似问题