我已经玩了一个小时,这可能是我想念的小东西,但我似乎无法获得Google API路径方法“.lat()”或“.lng() “在我的职能部门工作。但是,如果我提醒相同的方法,它会向我显示lat / lng值就好了。此函数正在尝试构建Maps Engine查询的WHERE子句的LINESTRING部分。
queryWhere += "ST_DISTANCE(geometry,ST_GEOMFROMTEXT('LINESTRING(";
for(x = 0; x <= path.length; x=x+2){
queryWhere += path[x].lng() + " " + path[x].lat();
if(!path[path.length - 1] || !path[path.length - 2]){
queryWhere += ", ";
}
}
queryWhere += ")'))<5000";
我回来了“Uncaught TypeError:无法调用未定义的方法'lng',但是,如果我这样做:
alert(path[x].lng() + " " + path[x].lat());
它的工作非常好。
答案 0 :(得分:4)
只能检查数组中的最后一个元素。索引基于零,因此最后一个索引为( length - 1)
更改为less than length
for(x = 0; x < path.length; x=x+2)
您在代码中超出了数组,因此最后一遍将返回path[x]
未定义
答案 1 :(得分:1)
我认为这可能来自你的循环。
for(x = 0; x <= path.length; x=x+2){
这里,x可以等于path.length
。但是,因为它从0开始,所以数组的最后一个索引是path.length-1
。
您需要使用严格的比较器:
for(x = 0; x < path.length; x=x+2){
或减少长度:
for(x = 0; x <= path.length-1 ; x=x+2){