Power Apps中使用集合在BingMaps显示多个PushPin的语法问题
解决Bing Maps在Power Apps中显示集合坐标的问题
嘿,我来帮你搞定这个Bing Maps显示坐标的问题!你当前的代码在Pushpin的拼接逻辑上存在几个小问题,咱们一步步修正过来:
首先,先明确Bing Maps Pushpin的正确语法:每个Pushpin的格式是 纬度,经度;样式值;可选标签,多个Pushpin之间用分号分隔。
你的代码主要问题在于:
- Concat函数的参数顺序错误,应该先指定要遍历的集合,再定义单个项的拼接规则,最后是分隔符
- 直接引用
mylist.Lat会取整个集合的列值,而不是单个地点的纬度/经度,需要针对集合里的每个项来调用字段 - 样式代码的位置拼接逻辑混乱
下面是修正后的完整代码:
BingMaps.GetMap( "CanvasLight", 15, // 这里设置地图中心,示例用集合第一个地点的坐标,也可以用平均坐标让地图居中所有点 First(Mylist).Latitude, First(Mylist).Longitude, { pushpin: Concat( Mylist, // 每个Pushpin的格式:纬度,经度;样式代码;可选标签 $"{Latitude},{Longitude};37;", ";" ) } )
代码解释:
Concat(Mylist, ...):遍历你的Mylist集合,逐个处理每个带坐标的地点$"{Latitude},{Longitude};37;":对每个地点生成符合规范的Pushpin字符串,37是你指定的样式代码,可根据需求调整- 最后用分号
";"分隔所有生成的Pushpin字符串
额外优化建议:
- 如果想让地图自动居中显示所有地点,可以把地图中心的坐标改成集合的平均纬度和经度:
Average(Mylist, Latitude), Average(Mylist, Longitude),
- 如果你的集合里有地点名称字段(比如
Name),可以给Pushpin加上标签:
$"{Latitude},{Longitude};37;{Name}",
内容的提问来源于stack exchange,提问作者GJB
相关产品推荐
相关产品推荐

