2017-08-29 9 views
2

リーフレットマップがあり、ポリゴンを編集したいと思います。私は正常にこれを行うが、私は編集を終了するとき、座標は次のように保存されます。Javascriptオブジェクトから関数名を削除する方法

,,LatLng(44.94633, 26.00773),LatLng(44.93588, 25.94318),LatLng(44.94245, 25.90645),LatLng(44.91814, 25.87074),LatLng(44.91328, 25.9346),LatLng(44.90015, 25.97031),LatLng(44.90112, 26.11519)" 

は、私が唯一の関数名なしの座標を持っていると思います。これどうやってするの?ありがとう! 1行書くことによってそれを解決

map.on("dragend", function(e){ 
    poligon = polygon.getLatLngs(); 
    poligon1 = poligon.toString(); 
    $('#geo').val(poligon1); 
    console.log(poligon1); 
}); 

enter image description here

+0

'poligon.lat;に直接アクセスする必要があります。 poligon.lng; '? – evolutionxbox

+0

私はそうは思わない...私は緯度と経度のための別のフィールドを持っていないと私は両方を追加する1つのフィールドを持っている –

+1

私はhttp://leafletjs.com/reference-1.2.0として考える。 html#polyline-getlatlngs、 'getLatLngs()'は点の配列を返します。ループのために実行して各LatLngsを見つけます。 – Sachin

答えて

0

poligon = polygon.getLatLngs(); 
     //this is what I added 
     poligon2=poligon.join(',').match(/([\d\.]+)/g).join(',') 
1

いけないしuはあなたが緯度経度のtoStringメソッドをオーバーライドすることができobjects

var arr=[]; 
console.log(polygon.getLatLngs()); 
for(var i=0;i<arr.length;i++){ 
    arr=polygon.getLatLngs(); 
    console.log(arr[i].lat); 
    console.log(arr[i].lng); 
    console.log("("+arr[i].lat +","+arr[i].lng+")"); 
} 
0

arrayを取得しますtoString()を使用あなたのプロジェクトでのプロトタイプCTのinit

L.LatLng.prototype.toString = function() { 
    return '(' + this.lat + ',' + this.lng + ')'; 
} 

はその後あなたがこの原因Array.toStringのような出力が表示されます()を再帰的にコレクション内のすべての要素に対してtoString()を呼び出します。

(44.94633、26.00773)、(44.94633、26.00773)

0

私は答えを追加します。

これは一般的に動作するはずです:文字列を与え、すべての数字を見つけようとし、それらを配列に返します。

<script> 
var mystring = "LatLng(44.94633, 26.00773),LatLng(44.93588, 25.94318),LatLng(44.94245, 25.90645),LatLng(44.91814, 25.87074),LatLng(44.91328, 25.9346),LatLng(44.90015, 25.97031),LatLng(44.90112, 26.11519)"; 

function isNumeric(input) { 
return (input - 0) == input && input.length > 0; 
} 

// reads a string, finds numbers (float), returns the numbers in an array 
function numbersInString(string) { 
var s = 0, temp=0, result = []; 
for(var i=0; i<string.length; i++) { 
    s = string.substr(i,1); // search 1 character, see if it's a number (digit) 
    if(isNumeric(s)) { 
    // parseFloat wil read as many characters as it can, and drop the rest 
    temp = parseFloat(string.substr(i)); 
    // okay, now skip the length of the float 
    i = i + temp.toString().length ; 
    result.push(temp); 
    } 
} 
return result; 
} 

window.onload = function() { 
    var numbers = numbersInString(mystring); 
    document.getElementById('log').innerHTML += numbers.join(','); 
} 
</script> 
<div id="log"></div> 
関連する問題