1

次の関数を使用して、Google マップで標高を取得しています。

function getElevation(event) {
    var locations = [];
    var clickedLocation = event.latLng;
    locations.push(clickedLocation);

    var positionalRequest = {
        'locations': locations
    }

    elevator.getElevationForLocations(positionalRequest, function(results, status) {
        if(status == google.maps.ElevationStatus.OK) {
            var s = results[0].elevation;

            if(results[0]) {
                $('#elevation').html(parseInt(s).charAt(0) + ' meter');
            } else {
                alert('Inget resultat hittades');
            }
        } else {
            alert('Det gick inte att hitta höjdskillnaden på grund av följande: ' + status);
        }
    });
}

マップ上のどこかをクリックすると、この問題を解決する方法がUncaught TypeError: Object 65 has no method 'charAt'わかりません。parseInt(s)マップ上のどこをクリックしたかに応じて、たとえば 44 が印刷されます。海をクリックすると、たとえば -4837 と表示されます。これは、この文字列に存在するかどうかを識別したいマイナス文字です。

この問題を解決する方法についてのアイデアはありますか?

前もって感謝します。

4

2 に答える 2

3

数値のプロトタイプには "charAt()" メソッドはありませんが、文字列にはあります。

$('#elevation').html(('' + parseInt(s)).charAt(0) + ' meter');

このparseInt()関数は数値を返します。最初に明示的に文字列に変換する必要があります。

そもそもなぜ数字にしようとするのか、ちょっと不思議です。

于 2012-04-13T00:26:22.460 に答える
1
parseInt(s).charAt(0)

文字列を解析して整数を返し、整数で charAt を呼び出そうとしていますが、うまく機能しません。解析する前に charAt を呼び出す必要があります。

于 2012-04-13T00:26:53.880 に答える