小编pul*_*200的帖子

优化距离计算功能

在我的代码中,我必须在lat/long值对之间进行大量的距离计算.

代码如下所示:

double result = Math.Acos(Math.Sin(lat2rad) * Math.Sin(lat1rad) 
+ Math.Cos(lat2rad) * Math.Cos(lat1rad) * Math.Cos(lon2rad - lon1rad));
Run Code Online (Sandbox Code Playgroud)

(lat2rad例如纬度转换为弧度).

我已将此功能确定为我的应用程序的性能瓶颈.有没有办法改善这个?

(因为坐标不同,我不能使用查找表).我也看过这个问题,建议像网格一样的查找方案,这可能是一种可能性.

谢谢你的时间!;-)

c# geolocation

8
推荐指数
1
解决办法
2454
查看次数

如何在WinForms中检测可本地化的属性?

在其他地方,有人声称控件的"可见"属性无法本地化.这是半真的.但是,"Visible"属性将LocalizableAttribute设置为true.但这只是意味着该属性被序列化为资源文件.我编写了一个测试程序,该程序具有标签设置为"false"的可见属性,用于Invariant Culture.使表单可本地化我将可见属性更改为德国文化的"true".如果我在系统设置为德语语言环境的情况下启动程序会发生什么?标签保持不可见.检查资源文件Form1.de.resx我可以看到visible属性尚未序列化.但是,如果我手动将其添加到资源文件:

<data name="label1.Visible" type="System.Boolean, mscorlib">
  <value>True</value>
</data>
Run Code Online (Sandbox Code Playgroud)

标签出现.我承认有点困惑.两个问题:

  • 如何使用内置序列化程序检测属性是否"真正"可本地化?
  • 覆盖默认行为的推荐方法是什么?

编辑:也许我需要澄清我的问题.我的示例程序是一个简单的表单,其默认语言设置为不变.我通过表单设计器手动添加了德语资源.程序在区域设置为german的系统上运行.

情况1

添加到表单中的" 可见 "属性:
1.)在不变文化中设置为false,在德国文化中设置为true(默认).=> panel是隐形的
2.)在Invariant文化中设置为true,在德国文化中设置为false.=> panel是不可见的(按预期工作)
显然,该值仅写入特定于语言的资源文件(如果它不是默认值).

案例2

添加到表单中的标签的" 字体 "属性:
1.)在不变文化中设置为粗体,属性在德国文化中重置为默认值.=>标签不粗体
2.)在不变文化中设置为默认,在德国文化中大胆.=> label为粗体
现在,属性按预期序列化.

这是一个错误还是我错过了什么?

c# localization winforms

8
推荐指数
1
解决办法
2234
查看次数

标签 统计

c# ×2

geolocation ×1

localization ×1

winforms ×1