当我尝试从react-google-maps获取多边形的坐标时,下面是我的编码:
const coords = { lat:{}, lng:{} }
getCoordinates: () => (polygon) => {
const paths = polygon.getPath()
const coor = paths.b
{coor.map(function(coor, i){
coords.lat= coor.lat()
coords.lng= coor.lng()
})}
return console.log(coords)
}
我正在尝试获取“coords”的对象数组,如下所示:
coords = [
{ lat: 3.1323583333745533, lng: 101.62676453590393 },
{ lat: 3.1318226928949433, lng: 101.62672162055969 },
{ lat: 3.131753059612469, lng: 101.6274243593216 }
]
但是使用代码会给我这个:
coords = {
lat: 3.131753059612469,
lng: 101.6274243593216
}
这是三个中的最后一个坐标。
如何在“coords”下获得所有三个坐标?
答案 0 :(得分:2)
你必须推送到数组而不是对象,希望它有所帮助!
let coords = [];
getCoordinates: () => (polygon) => {
const paths = polygon.getPath();
const coor = paths.b;
coor.forEach((c) => {
coords.push({
lat: c.lat(),
lng: c.lng()
});
});
return console.log(coords);
}
答案 1 :(得分:2)
此代码真的混淆了。你似乎在寻找
function getCoordinates(polygon) {
const paths = polygon.getPath()
const coords = paths.b.map(coor => ({
lat: coor.lat(),
lng: coor.lng()
}));
return coords;
}
console.log(getCoordinates(…));