Google Map多个标记间绘制折线报InvalidValueError问题求助
问题原因
Google Maps Polyline 组件的path参数仅支持两种格式的坐标集合:
- 由
google.maps.LatLng实例组成的数组 - 由
{lat: 纬度数值, lng: 经度数值}格式字面量对象组成的数组
你当前代码中LocationArray存储的是[纬度, 经度]格式的普通二维数组,不符合参数要求,因此触发类型报错。
修复方案
找到循环中给LocationArray赋值的代码行:
LocationArray.push([UserLatitude,UserLongitude]);
将其修改为以下任意一种格式即可:
方案1:使用LatLng实例(和Marker创建逻辑对齐)
LocationArray.push(new google.maps.LatLng(UserLatitude, UserLongitude));
方案2:使用LatLng字面量(性能更优)
LocationArray.push({lat: UserLatitude, lng: UserLongitude});
额外排查建议
- 先打印接口返回的
result.Result数据,确认所有条目的UserLatitude、UserLongitude都是合法的数字格式,避免parseFloat转换后得到NaN - 如果存在无效坐标,可在循环中增加判断逻辑,过滤掉
isNaN(UserLatitude)或isNaN(UserLongitude)的异常数据,避免影响整条折线渲染
内容的提问来源于stack exchange,提问作者Nidhi
相关产品推荐
相关产品推荐

