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

Power Apps中使用BingMaps.GetRouteV2计算位置距离的问题咨询

Power Apps中使用BingMaps.GetRouteV2计算位置距离的问题咨询

你好!针对你在Power Apps画布应用里计算资产与技术员位置距离时遇到的两个问题,我来帮你逐一梳理解决:

一、如何为BingMaps.GetRouteV2传递起点和终点经纬度

BingMaps.GetRouteV2函数需要接收**起点(startPoint)和终点(endPoint)**两个核心参数,每个参数都要是包含latitude和longitude字段的记录格式。结合你的场景,你可以这样传递资产和技术员的位置信息:

BingMaps.GetRouteV2(
    // 资产位置(起点)
    {latitude: relatedAsset.Latitude, longitude: relatedAsset.Longitude},
    // 技术员位置(终点)
    {latitude: ticketLocation.Latitude, longitude: ticketLocation.Longitude},
    // 可选:设置出行模式,比如驾车、步行等,默认是驾车
    {travelMode: "driving"}
).travelDistance

需要注意:

  • 函数返回的结果中,travelDistance字段就是两点间的距离,默认单位是公里,如果需要英里可以乘以0.621371进行转换
  • 请确认你的SharePoint列表中资产的经纬度字段名称正确(你提到的“latitude & Latitude”应该是笔误,应该是Latitude和Longitude)

二、解决Patch时找不到Distance列的问题

你遇到这个问题的核心原因是:AddColumns函数不会修改原集合,而是返回一个包含新列的新集合,你之前的写法没有把新集合赋值回原变量,导致原集合colRelatedticketTechnicianLocation其实并没有Distance列。

修正方案1:在收集时直接添加Distance列

最简洁的方式是在初始收集技术员位置时,就直接添加Distance列,避免后续重复操作:

ClearCollect(colRelatedticketTechnicianLocation,
    AddColumns(
        Filter('Technicians Locations','ticket ID'=If(IsBlank(varticketID),varNavigationID,varticketID)),
        "Distance", 0 // 初始化Distance列
    )
);

修正方案2:重新赋值AddColumns的结果给原集合

如果你已经单独执行了收集操作,也可以把AddColumns的结果重新赋值回原集合:

ClearCollect(colRelatedticketTechnicianLocation,
    AddColumns(colRelatedticketTechnicianLocation,"Distance",0)
);

优化ForAll+Patch的写法

另外,Power Apps里的ForAll更适合用来生成批量更新的记录,而不是循环执行Patch,推荐你改成更高效的写法:

Patch(
    colRelatedticketTechnicianLocation,
    ForAll(
        colRelatedticketTechnicianLocation As ticketLocation,
        {
            ID: ticketLocation.ID,
            Distance: BingMaps.GetRouteV2(
                {latitude: relatedAsset.Latitude, longitude: relatedAsset.Longitude},
                {latitude: ticketLocation.Latitude, longitude: ticketLocation.Longitude}
            ).travelDistance
        }
    )
);

额外注意事项

  • 确保你的Power Apps已经添加了Bing Maps连接器,并且配置了正确的权限
  • 确认技术员位置列表中的经纬度字段是数字类型,而非文本类型,否则会导致距离计算错误

备注:内容来源于stack exchange,提问作者microsoftdeveloperdesigner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 11:28:00