1

我正在使用以下函数来获取谷歌地图上的海拔:

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 回答