小编pm1*_*101的帖子

GMap .net离线

我在c#(伟大的API,顺便说一句)中使用Gmap开发应用程序,不要与google-map API混淆,从那以后我做了一些非常酷和有用的东西.

我的问题是我的一些客户没有互联网连接,这就是为什么我需要能够离线显示背景(地图).我曾经使用该属性GMap.NET.AccessMode.ServerAndCache;从服务器获取我的数据,现在我希望能够使用GMap.NET.AccessMode.CacheOnly完整的缓存.

让他们加载具有连接的缓存以准备离线使用不是一种选择,PC永远不会连接到互联网.经过一些研究,我了解到OpenStreetMap是唯一允许我免费使用他们的地图的开源地图(这很好,因为他们有非常好的地图).我下载了20GB的欧洲地图,但我不知道如何将其指定为缓存(我知道如何找到缓存文件夹).

大多数时候,我的谷歌搜索向我展示了人们试图创建一个虚拟sqlite服务器,其中包含通过localhost访问的数据库中的所有地图块,但老实说,我认为这非常复杂,我想知道是否有人有想法允许我离线使用这些地图或者这个api的文档链接,不可能在网上找到(我找到了消息来源,但几乎没有评论也没有解释).

提前谢谢,抱歉我的英语不好.

réponsesenfrançaisbundvenues.

c# maps caching gmap.net

6
推荐指数
1
解决办法
9701
查看次数

WPF MouseMove InvalidateVisual OnRender更新非常慢

我没有在Google或Stack Overflow上找到任何有用的东西,或者根本没有答案(或者也许我只是不知道要搜索什么)-我能找到的最接近的问题是:在性能低下的原因WPF

但是我想在这个简单的程序中解决这个滞后的原因,也许我只是做的不好。

我正在UI元素的OnRender()中渲染大约2000个点,并且它们之间有线,实际上是在创建线图。没关系,但我想使用MouseMove平移图形。效果很好,但问题是LAG。每当我用鼠标拖动时,我都会期望平滑的更新,我认为重绘2000点并在它们之间有线是在i5 CPU上漫步。但是,即使在我家里的笔记本电脑上分辨率很低时,它的速度也非常慢。因此,我检查了性能分析器。OnRender()函数几乎不使用任何CPU。

MouseMove和OnRender几乎不占用太多CPU

事实证明,正在更改和使用大量CPU的是Layout。

布局使用最多的CPU

“版式”花费最多的时间来完成

布局花费最多的时间 它说对Visual树进行了更改-但未进行任何更改-仅调用了InvalidateVisual

现在,我听到了术语“视觉树”的话题,但是在这个简单的项目中几乎没有任何视觉效果。只是主窗口上的UI元素。而且它使用的是绘图上下文,我以为绘图上下文就像位图一样绘制,或者它是使用自己的事件/命中框等绘制UI元素的?因为我想要的只是让UIElement像图像一样工作,而且还要处理鼠标事件,所以我可以拖动整个对象(或使用鼠标滚轮缩放)。

所以问题:

  1. 如果Layout造成速度缓慢/滞后,如何防止这种情况?
  2. 我还注意到有很多垃圾收集是有意义的,但是我不希望它在渲染期间发生。我宁愿在闲置时这样做。但是如何?

来源如下:

.cs文件

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;
using System.Windows.Media;

namespace SlowChart
{
    public class SlowChartClass : UIElement
    {
        List<Point> points = new List<Point>();

        double XAxis_Width = 2000;
        double XAxis_LeftMost = 0;

        double YAxis_Height = 300;
        double YAxis_Lowest = -150;

        Point mousePoint;
        double XAxis_LeftMostPan = 0;
        double YAxis_LowestPan = 0;

        public SlowChartClass()
        {
            for (int i = 0; i < 2000; i++)
            {
                double cos = …
Run Code Online (Sandbox Code Playgroud)

c# wpf drawingcontext uielement

4
推荐指数
1
解决办法
762
查看次数

标签 统计

c# ×2

caching ×1

drawingcontext ×1

gmap.net ×1

maps ×1

uielement ×1

wpf ×1