4

私は JavaScript を使用しており、GPS 座標を文字列の形で持っています。それらをgoogle.maps.LatLng(59.327383, 18.06747)フォーマットに入れようとしていますが、その方法を決定するのに苦労しています。私は変数を持っています:

GPSlocation = "(37.700421688980136, -81.84535319999998)"

そして、その google.maps.LatLng(num, num) 形式に入る必要があります。この文字列をそこに入れるにはどうすればよいですか?

ありがとう!

4

2 に答える 2

13

標準の文字列操作を使用して値を抽出できます。

var GPSlocation = "(37.700421688980136, -81.84535319999998)";
var LatLng = GPSlocation.replace("(", "").replace(")", "").split(", ")
var Lat = parseFloat(LatLng[0]);
var Lng = parseFloat(LatLng[1]);

google.maps.LatLng(Lat, Lng)
于 2012-09-09T06:41:04.317 に答える
1

JSON.parse(を使用して)そこから配列を作成し、を使用applyして座標をメソッドに「フィード」することができます。

GPSlocation = JSON.parse( "(37.700421688980136, -81.84535319999998)" 
                          .replace(/^\(/,'[')
                          .replace(/\)$/,']')
                        );
google.maps.LatLng.apply(null,GPSlocation);

または、角かっこを置き換えて使用splitして配列を作成しLatLng、通常の方法でメソッドを呼び出すこともできます。Numberこの方法では、配列値への追加の変換が必要です。

GPSlocation = "(37.700421688980136, -81.84535319999998)"
               .replace(/^\(|\)$/,'')
               .split(',');
google.maps.LatLng(+GPSlocation[0],+GPSlocation[1]);

文字列から座標の配列を取得するには、次を使用することもできます。

GPSlocation = ''.slice.call('(37.700421688980136, -81.84535319999998)',
                             1,this.length-1)
                       .split(',')
                       .map(function(a){return +a;});
google.maps.LatLng(GPSlocation[0],GPSlocation[1]);
于 2012-09-09T06:32:52.673 に答える