2017-07-04 9 views
2

自分のレイヤをクリックしてフィーチャを表示する必要があります。 サークルを作成しようとすると、次のエラーが表示されます。Error: Invalid LatLng object: (41.961124103390674, NaN)carto.jsとリーフレットライブラリを使用して地図に円を追加する

このエラーが発生する前にオブジェクトを印刷すると、私は読むことができます:Array [ 41.84664960937685, 12.008056640625 ]。 値を分離して書き込もうとしましたが、機能しません。

どうすれば可能ですか? 誰かが私を助けることができますか?おかげで、私の英語

EDIT

のため申し訳ありませんが、私はこのソリューションを試してみました:このコード

layer.getSubLayer(1).on('featureClick', function (event, latlon, pos, data, index) { 
var coord = {lat:data.lat, lng:data.lon}; 
console.log(coord) 
L.circle(coord, {radius: data.distance}).addTo(map); 

エラーログと同じです...

EDIT 2

var coord = L.latLng(42,21); 
var cerchio = L.circle(coord,{radius: data.distance}); 
    console.log(cerchio); 
    cerchio.addTo(map); 

円のObjectが正しく作成されていることがわかりましたので、問題はaddTo(map)メソッドにあります。

+0

あなたの質問の更新ではなく、回答を回答として投稿してください。これは混乱を避けるためです。ありがとうございました。ソリューションをコピーして回答に貼り付ける場合は、[revision](https://stackoverflow.com/posts/44903639/revisions)の履歴を確認してください。 – Bugs

答えて

0

Carto Docsによると、あなたのfeatureClickコールバックでlatlon引数が含まれています

Array with the LatLng ([lat,lng]) where the layer was clicked.

あなたは円がどこに保存するかということですか?そう、このラインを使用する場合:

L.circle(latlon, {radius: data.distance}).addTo(map); 
+0

はい、そうですが、私はすでに 'latlon'を使用しており、結果は常に同じです。 –

+0

'console.log(latlon);の結果は何ですか? –

+0

'配列[41.94478317075675,12.183837890625]' –

-1

1609*3

var coord = L.latLng(42,21,1609*3); 
0

が解決追加

正しい方法はdata.distanceは円の半径である

L.circle([data.lat, data.lon], data.distance, {}).addTo(map); 

です。公式のdocの例L.circle([50.5, 30.5], {radius: 200}).addTo(map);が間違っているようです。

関連する問題