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

WPF C#使用EF查询的经纬度为Bing Maps设置Pushpin位置异常求助

问题根源

你在给Location属性赋值时的错误来自于:Bing Maps WPF控件的Location类构造函数不支持直接传入你EF查询返回的匿名类型对象,它的标准构造函数需要依次传入两个double类型参数:第一个是纬度值,第二个是经度值。

修正后的代码

private void LoadPins()
{
    var result = (from s in PE.tbl_SafeSpace
                  select new
                         { s.lat, s.@long }).ToList();

    foreach (var item in result)
    {
        Pushpin pin = new Pushpin();
        // 分别取出经纬度传入Location构造函数
        pin.Location = new Location(item.lat, item.@long);
        // 可选:给Pushpin加提示信息方便识别
        pin.ToolTip = $"纬度:{item.lat}\n经度:{item.@long}";

        // 添加到地图
        bMaps.Children.Add(pin);
    }    
}

额外注意事项

  • 请提前确认数据库中lat和long字段为数值类型,没有非数值、空值等异常数据,避免运行时类型转换报错
  • Bing Maps的Location构造函数参数顺序为先纬度、后经度,如果最终Pushpin位置和预期不符,可以检查两个参数的传参顺序是否正确
  • 上述代码把原来的for循环改成了更简洁的foreach遍历,如果你需要保留索引计数可以改回原来的for写法,只要经纬度传参逻辑正确即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:06:03