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

能否结合PlaceId使用Advanced Markers?传统标记方式执行报错

用AdvancedMarkerElement通过PlaceId添加标记的实现方法

可以实现,但AdvancedMarkerElement的API设计和传统标记(Marker)不同,不能直接通过place属性传入PlaceId,这就是你触发invalidValueError的原因。

正确实现方式

和传统标记的逻辑类似,仍需先通过PlacesService获取目标地点的几何坐标,再将坐标赋值给AdvancedMarkerElement的position属性:

const service = new google.maps.places.PlacesService(map);
service.getDetails({
    placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4'
}, function (result, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
        const marker = new google.maps.marker.AdvancedMarkerElement({
            map: map,
            position: result.geometry.location // 传入获取到的经纬度坐标
        });
    }
});

核心差异说明

  • 传统Marker支持通过place属性直接传入PlaceId与location组合,但AdvancedMarkerElement没有该属性,必须显式传入position坐标值。
  • 建议先判断PlacesService的请求状态,避免因请求失败(如PlaceId无效、网络问题)导致后续代码出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:49:59