ThinkGeo.com    |     Documentation    |     Premium Support

Drawing problem when using the same table

 


hello, I'm facing another big problem.


I've an Oracle table with a lot of records, 100 thousand +-.


I'm adding four diffent layers where I filter this table by a column value. I really need 4 diferent overlays, cannot use thematic class.


But from time to time, when I pan the simbology is not well rendered, please see the video:


hotfile.com/dl/125697902/432...35.7z.html



MapSuiteCore version: 5.0.20

Hello Rui, 
  
 Thank you for your post and video. 
  
 So about the simbology is not well rendered, you mean it shows too slow? 
  
 Regards, 
  
 Gary

Hello Gary, if you notice in the video, while you pan sometimes it just renders a white or black line.  
  
 If you have a nice yellow with border and so one symbology some time it shows the nice yellow 8px width line and some times just a 1px black/white line. 


Rui, 
  
 But in the video, you are keep paning the map, it look like show the white line first, and after a while, show the blue line. 
 So I’m not sure if it’s only show the white line or it will show the blue line but cost many time. 
  
 Did you debug the program and see if the overlay of blue line is drawing? 
  
 Regards, 
  
 Gary 


the lines are always the same layers! There aren't any postbacks on the video only call to Thinkgeo handlers.


 


here lines are blue:



Now the blue lines turned into 1px width black line.



And now blue again....



 


I'm not able to upload more images, but next those black lines in the previous image will turn into 1px white lines... and so one...



any idea of what is going on?

Rui, 
  
 Thank you for your patience, I’m sorry it’s so late, this problem has a little complicate, we are trying to verify it in some way, I will tell you a result tomorrow. 
  
 Regards, 
  
 Gary

I think it is pretty weird… 
 I also notice now that it doesn’t show the labels for the problematic Layers. Hope it helps some how.

Rui, 
  
 We have tried several way to verify this, but it didn’t work, so maybe we need you some help. 
  
 1. Could you please try to set the background of 4 overlays to translucent? Then have a look at that if all the overlays draw but covered each other, if so, it’s a bug to  arrange the draw sequence, we can fix that. If not, please do step 2. 
 2. Please check if the data to the overlay comes in time, did they throw some timeout exception? 
  
 Thank you for your help, 
  
 Regards, 
  
 Gary

Hello Gary, 
  
 No, the data does not overlap. And it gets drawn everytime as you can see by the pictures.  
 The only problem is the symbology and the labels. It gets drawn with bad symbology and with no labels. 
  
 Have you test it with a big dataset?

Rui, 
  
 Thank you for your feedback, this is a weird problem, I think the big dataset is not the root cause.  
  
 Did you change the style in dynamic? Could you please provide some sample code that we can help review it? 
  
 Regards, 
  
 Gary

Gary, I don’t change the style.  
 I set the style an never postback again. 
  
 I’ll try to create some sample, but my guess is that is related with the data size. I’m using a big dataset, and for the same table I’m showing 9 different layers, aplying WhereClause

Rui, 
  
 Thank you for your information, our guess is if the dataset too big that overlay can’t get response, it won’t show anything. 
  
 It will helpful if you can provide a sample, thanks a lot. 
  
 by the way, in your other post, we have fixed the caching problem, please check the post for details. 
  
 Regard, 
  
 Gary

I’ve to take a more careful look at this when I come from vacations. 
  
 It is getting the data 'cause is drawing it as a 1px width black line.  
  
 When you have label associated is a two step procedure? 1 for drawing the line and another for the label?

Rui, 
  
 Thank you for your information, if we can get a sample, that will be much easier to resolve. 
  
 Regards, 
  
 Gary

Hello Gary, I was making a demo aplication but is data related problem. With the quantity of data, I cannot send you the Oracle table I’m using. 
  
 But I found that when I don’t use labels I don’t have the problem. Is there anywhere where I can see what is being done, vector information reading, label values reading, drawing labels, drawing vector information?  
  
 I wanted this info so I could attach some event handling to find what is going on. 


Found that it happens more frequently when I have  



TextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels 



I think it only happens when I have this, but not sure. In some tests without this the problem never happened.





Could be that when you draw you are using the following workflow: 
  
 Apply label style -> Apply vector style -> Draw everything 
  
 and some error or so is happening inside "Apply label style" and is jumping to "Draw everything" ?!

Here is the problem: 
  
  
  
 System.ArgumentException: The format of the well known binary is incorrect.  Parameter name: wellKnownBinary —> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.     at System.IO.__Error.EndOfFile()     at System.IO.BinaryReader.FillBuffer(Int32 numBytes)     at System.IO.BinaryReader.ReadDouble()     at mRQ=.QBo=.aho=(BinaryReader axo=)     at mRQ=.QBo=.VRo=(BinaryReader Vho=)     at mRQ=.QBo=.Txo=(BinaryReader UBo=)     at mRQ=.QBo=.TRo=(Byte[] Tho=)     at ThinkGeo.MapSuite.Core.BaseShape.CreateShapeFromWellKnownData(Byte[] wellKnownBinary)     — End of inner exception stack trace —     at ThinkGeo.MapSuite.Core.BaseShape.CreateShapeFromWellKnownData(Byte[] wellKnownBinary)     at mRQ=.4C8=.4y8=(Byte[] 5C8=)     at ThinkGeo.MapSuite.Core.Feature.GetBoundingBox()     at ThinkGeo.MapSuite.Core.PositionStyle.FilterFeaturesCore(IEnumerable`1 features, GeoCanvas canvas)     at ThinkGeo.MapSuite.Core.PositionStyle.FilterFeatures(IEnumerable`1 features, GeoCanvas canvas)     at ThinkGeo.MapSuite.Core.PositionStyle.DrawCore(IEnumerable`1 features, GeoCanvas canvas, Collection`1 labelsInThisLayer, Collection`1 labelsInAllLayers)     at AmbiSIG.GeoPortal.Web.Map.TG.ThinkGeoExtensions.AmbiSIGTextStyle.DrawCore(IEnumerable`1 features, GeoCanvas canvas, Collection`1 labelsInThisLayer, Collection`1 labelsInAllLayers) in C:\Projectos\DotNetFramework35\FrameworkSolution\AmbiSIG.GeoPortal.Web.Map.TG\ThinkGeoExtensions\AmbiSIGTextStyle.cs:line 23
 
 
  
 I’ve override  the TextStyle class and grabbed this.