2017-11-06 5 views
2

以下は、私が反応するとGoogleマップからポリゴンの座標を取得しようとしています私のコーディングで複数のオブジェクト配列の宣言を作成します「以下のように:Reactjsは

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 
} 

最後coordinあります3人のうちの1人が出かけた。

"coords"の下に3つの座標をすべて取得するにはどうすればよいですか?

答えて

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); 
} 
+2

'push'と一緒に' map'を使わないでください。配列に明示的に 'push 'したいのであれば、代わりに通常の' for(coor)を使用する'ループを使用する – Bergi

+0

間違ったメソッドを使用して申し訳ありません、私は関数をチェックせずにコードを変更しています。 'forEach'代わりに – AngYC

+0

ありがとう、良い、私はまだ' forEach' + 'push'の組み合わせを' map'だけ使うことができないときは嫌いです:-P – Bergi

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(…));