ThinkGeo.com    |     Documentation    |     Premium Support

Aggregate functions for feature

Hello
Now I have a million points to draw, but it takes a long time to draw. There are a lot of points that overlap, do they have aggregate functions now? The current display shows only one point at a point where the distance is very close to the column.

ZhangMing

Hi ZhangMing,

Please refer the sample here: https://github.com/ThinkGeo?utf8=✓&q=cluster&type=&language=

I think the cluster style should be helpful for your scenario.

Regards,

Ethan

Hi Ethan
I found this feature suitable for clustering multiple columns. Now it’s a column of content, and it’s about a million. The coordinates of a lot of points are very close, and I want these very close points to show only one point, to increase the display speed.

Regards
ZhangMing

Hi ZhangMing,

I think the ClusterPointStyle don’t related with the column you mentioned, it’s just a cluster for the features which are very close.

You can view its code here: https://github.com/ThinkGeo/ClusterPointSample-ForWinForms/blob/master/ClusterPoint/Form1.cs

I guess you viewed the other sample.

Regards,

Ethan

Hi Ethan

ClusterPointStyle is used to aggregate the scattered points, but the test results are not good and the performance is worse.

  1. 100,000 point - using cluster, it will take about 31 seconds to refresh the layer, and it will not apply to the cluster scatter time for about 7 seconds.
  2. 200,000 points - use the cluster. It will take 1 minute and 11 seconds to refresh the layer, and it will not apply to the cluster scatter time for about 11 seconds.

Regards
ZhangMing

Hi ZhangMing,

If the performance of ClusterStyle is not well for your scenario, I think you have to filter the data by some other way.

  1. Split the data into different group, if you are using ShapeFile, you can split the data to some different shape file, in high zoomlevel, you shows the small group, and in deeper level, show the complete group. You can implement that by our utility GisEditor (https://github.com/ThinkGeo/MapSuiteGisEditor) or some other 3rd part utility.

  2. You can build many different index for the same shape file, and render the same shape file with different index file in different layer, this require your data contains at least one flag column so you can group the features.

Wish that’s helpful.

Regards,

Ethan

Hi Ethan
we use the memory data. layer to hide and display will now take a long time for a large amount of scatter data. I will see you on your communication website mode of gdi + to D2D mode now, how about the progress of the D2D mode. I think the D2D model might be good for performance.

Regards
ZhangMing

Hi ZhangMing,

It looks we don’t have a sample about how to use the D2D, here I build a sample for you, you can modify it to test whether the D2D mode can works well for your scenario.

9102.zip (102.3 KB)

Regards,

Ethan

Hello Ethan
There is a problem with the instance of the program you gave, and I have started the program without any errors. Do you need to configure the environment?

Zhangming

Hi Zhangming,

Do you means you met error or exception when run the project?

Regards,

Ethan

Hi Ethan
yes, I run the program and flash back without any errors.

Regards
ZhangMing

Hi ZhangMing,

It works well in my machine, but when I test it in the other machine I reproduced this problem, I switch the build Platform target and solve it.

Please try to switch the build mode and see whether it can also help you.

And if here we have some problem, our developer will research it and see whether it can be solved.

Regards,

Ethan

Hi Ethan
I’ve solved this problem by bulid the platform version. I found ThinkGeo. MapSuite. Drawing. WicBitmapGeoCanvas. DLL is a beta version, what time do you plan to release the official version. Do you have a performance test for D2D mode?

Regards
ZhangMing

Hi ZhangMing,

I think the 10.2.1 is the release version of it: https://www.nuget.org/packages/ThinkGeo.MapSuite.Drawing.WicBitmapGeoCanvas/10.2.1

And we don’t have the performance test for this mode.

Regards,

Ethan

Hi Ethan

I am testing the load of 500,000 data on the demo that you gave to me, using D2D mode or not using it. There is not much difference between using and not applying. When you zoom in and out of the layer, the CPU consumption of both modes is very high, and the GPU resources are basically not utilized. We tested arcgis maps, and when the local map data was loaded, it was basically only using GPU resources on the refresh map, and there was no consumption of CPU resources.

Regards,
ZhangMing

Hi ZhangMing,

We did some test, create 500000 random points, then render them via WicBitmapLayerOverlay, we found the GPU is used, but the peak value is when map initialize the points.

And pan or zoom after that won’t make GPU get big changes.

After that we double check the code of WicBitmapGeoCanvas, and we make sure the code follow correct way to call D2D dlls.

So we think maybe the slow problem is not related with the part of D2D, but we also cannot make sure that, our developer will do further research about this problem.

If we have any update we will let you know, but for now please try to reduce the render shape number at the same time, that should be the quickly solution for it.

Regards,

Ethan

Hi Ethan

Thank you for verifying this feature. If you have any updates, please let me know.

I will continue to pay attention to this function. I think this function will have a great impact on our products.

Thanks again for your team’s strong support.

Regards
ZhangMing

Hi Ethan

  How is the D2D function going? Our customers are not satisfied with the current map performance.

Regards
ZhangMing

Hi Zhangming,

Our developer is keeping research about D2D, but we don’t have good news on it.

Thanks for remind me the focus point is performance, let us discuss about this from floor 5 of currently post.

a. If you want to solve the performance issue, I think the best solution is open cache, that’s related with your scenario.

If your point won’t get dynamic change, just open cache, or you can pre-build cache images, and the map will load very fast.

b. You ignore my suggestion in floor 5, you can split the data, shows target number points in specified level. In fact for map, nobody want to view 100000 points in high zoom level. If you can group the points by some target column value, that can get better render result. For example, when you in high level you only need view country, zoom in you can see province, keep zoom in you can see cities, and go on you can see the detail roads. That’s split the data into different levels.

If these items cannot solve your problem please let us know where is the problem, and after that if possible please sent us a valid test project with data, so we can try to solve it.

Regards,

Ethan