You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps标记图标按类型调大小:条件代码致地图无响应

问题分析与解决方案

你的代码出现页面无响应的核心原因是在JavaScript对象字面量中直接嵌入了if-else语句,这属于语法错误,导致整个脚本解析失败,地图无法完成初始化。对象字面量的属性赋值只能使用合法表达式,而if-else是语句,不能直接放在对象内部。

修正后的代码片段

把你原来的icon配置部分替换成下面的代码即可:

icon: {
  url: 'http://trivenialmirah.com/img/'+markers[i][4]+'.png',
  scaledSize: markers[i][4] === 'P' 
    ? new google.maps.Size(20, 32) 
    : new google.maps.Size(11, 18)
}

为什么这样改?

这里用三元条件运算符(condition ? 真值结果 : 假值结果)替代了原有的if-else块,它属于合法表达式,可以直接作为对象属性值返回对应的尺寸对象,既简洁又符合JavaScript语法规范。

如果你觉得三元表达式不够直观,也可以提前计算好尺寸再赋值,可读性更强:

// 先根据dtype标记类型确定图标尺寸
let markerSize;
if (markers[i][4] === 'P') {
  markerSize = new google.maps.Size(20, 32);
} else {
  markerSize = new google.maps.Size(11, 18);
}

// 再定义icon对象
icon: {
  url: 'http://trivenialmirah.com/img/'+markers[i][4]+'.png',
  scaledSize: markerSize
}

这两种写法都能解决语法错误,让脚本正常执行,同时实现红色图标(P)比蓝色图标(R)尺寸更大的需求。

内容的提问来源于stack exchange,提问作者Aryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:51:48