我正在使用以下功能在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,它就是那个减号,我想识别它是否存在于这个字符串中。
关于如何解决这个问题的任何想法?
提前致谢。
答案 0 :(得分:3)
Numbers在原型上没有“charAt()”方法,但是字符串没有。
$('#elevation').html(('' + parseInt(s)).charAt(0) + ' meter');
parseInt()
函数返回一个数字。您必须先将其显式转换为字符串。
为什么你首先试图让它成为一个数字有点神秘。
答案 1 :(得分:1)
parseInt(s).charAt(0)
您正在解析一个字符串并返回一个整数,然后尝试在整数上调用charAt,这将无法正常工作。你应该在解析它之前调用charAt。