POST
|
Hi Jennifer Thanks for the response. Yes the requirement is to display all the points on the map, the locations are spread across the world and the startup view is a world view with the points displayed using a class breaks renderer. The data is 'read only' as in the user is not editing, the update is called because the user can apply any number of attribute filters and a spatial filter. Regards Chris
... View more
06-28-2011
02:36 PM
|
0
|
0
|
300
|
POST
|
Stepping through the code I have found that if my Outfields on the featurelayer dont match the fields in the LayerInfo then the code takes an extra 4 mins 27 seconds to run. Options are rebuild the FeatureDataGrid code with some changes or set my OutFields property ="*" problem line of code is... if (!AllAttributesMatch(enumItemsSource.Current.GetType().GetProperties(), (e.NewItems[0] as Graphic).Attributes))
shouldResetItemsSource = true;
... View more
06-24-2011
06:30 AM
|
0
|
0
|
147
|
POST
|
Hi Have just upgraded a project to v 2.2 of the Silverlight API and appear to have a performance issue with the featuredatagrid. My data layer of approx 4000 points in 2.1 would draw reasonably quickly after applying what I have mentioned in this post http://forums.arcgis.com/threads/33221-FeatureLayer-slow-on-Update%28%29 and the FeatureDataGrid would load the data quickly (no noticeable delay) I have upgraded to 2.2 and now the featurelayer takes 4 minutes 31 seconds to load when a featuredatagrid is bound to it, there is no issue if no featuredatagrid is bound. Is there some new functionality/setting that I am missing for the featuredatagrid, or is it unrealistic to draw 4000 points in a featurelayer? Thanks Chris
... View more
06-24-2011
04:48 AM
|
0
|
1
|
724
|
POST
|
Hi I have a FeatureLayer of approx 4000 points, if I apply a polygon to the Geometry property of the FeatureLayer and then call Update() on the FeatureLayer performance is very slow it takes considerable time before the rest call is even issued. After digging again in Reflector I spotted a method called clearGraphicsNoDelete() that iterates through the Graphics collection and does a RemoveAt() method call and this appears to be the culprit for slowing the spatial query/Update() down. If I call layer.Graphics.Clear() before calling Update() the update takes considerably less time, basically I want to know if this will have any adverse affect on the FeatureLayer ( The layer is a readonly view of data) OR am I using the FeatureLayer incorrectly? Thanks Chris
... View more
06-22-2011
04:12 AM
|
0
|
4
|
2075
|
POST
|
Hi Vince Yes lets take it offline, have spoken to ESRI UK support and they will contact you guys to help progress this further. I am assuming you are ESRI Inc Redlands based? Thanks for the help chris
... View more
01-10-2011
06:26 AM
|
0
|
0
|
427
|
POST
|
Hi Vince Have been away for a week and it appears I have missed quite a bit! Anyway what I need to be able to do is have a reasonably fast process to scan through 20+ million features to find out which are considered invalid by ESRI software. Are you able to point me in the right direction? A function I can include in my code, an external library to reference or an executable I can run to select the problem geometries out would be desirable. cheers chris
... View more
01-10-2011
04:24 AM
|
0
|
0
|
789
|
POST
|
Hi Vince Once again thanks for the help! I look forward to resurrecting my C-Api skills, been about 5 years but should be fun 😉 Do you still have the course notes that accompanied the exercises in particular the Clementini Topolgy section - or have a pointer to some reading material available on the web? Happy New Year to you chris
... View more
12-31-2010
04:37 AM
|
0
|
0
|
789
|
POST
|
Hi I have loaded the geometry with the problem interior ring into a shapefile, it is clearly self intersecting when viewed in arcmap. points from geometry in shapefile.... Part 0 529785.170 180867.590 529767.100 180902.360 529827.800 180940.950 529850.040 180907.640 529786.560 180868.450 529786.560 180868.450 Part 1 529786.560 180893.410 529811.730 180908.530 529807.560 180915.420 529786.330 180902.810 529790.100 180895.480 I then export the feature into sde and the process adds extra points I assume to fix the self intersecting issue. The exported geometry is viewable in arcmap but if you look at point 1 & 4 they have the same values; is this not considered self intersecting? points for geometry in sde... Part 0 529785.170 180867.590 529767.100 180902.360 529827.800 180940.950 529850.040 180907.640 529786.560 180868.450 Part 1 529786.330 180902.810 529790.078 180895.523 529786.560 180893.410 529790.100 180895.480 529790.078 180895.523 529811.730 180908.530 529807.560 180915.420 cheers chris
... View more
12-31-2010
01:35 AM
|
0
|
0
|
789
|
POST
|
unfortunately the cmd ends when it hits the first self intersecting feature, it reports the following.. Total rows examined: 99460 Total invalid shapes: 0 Error: Linestring or poly boundary is self-intersecting (-155). Error: Error in fetching row. I have examined the features with fids of 99459,99460,99461,99462 but they all are simple polygons definitely not self intersecting so they appear to be fine, so not sure what order the data is examined in. Interestingly I have located another dodgy geometry, this time the interior ring is self intersecting, gml below if you are interested... <Polygon xmlns="http://www.opengis.net/gml"> <exterior> <LinearRing> <posList>529785.17001342773 180867.58999633789 529850.04000854492 180907.64001464844 529827.799987793 180940.95001220703 529767.10000610352 180902.35998535156 529785.17001342773 180867.58999633789</posList> </LinearRing> </exterior> <interior> <LinearRing> <posList>529786.55999755859 180893.41000366211 529790.07778930664 180895.52319335938 529786.32998657227 180902.80999755859 529807.55999755859 180915.42001342773 529811.73001098633 180908.5299987793 529786.55999755859 180893.41000366211</posList> </LinearRing> </interior> </Polygon> Any other suggestions on how to detect these problem geometries? thanks chris
... View more
12-31-2010
12:00 AM
|
0
|
0
|
1539
|
POST
|
Hi Vince Is there any way of checking geometries to see if they are considered valid, the loaded dataset will have millions of records. If I remember correctly there was such an app called Checkgeometries that could be used to find invalid geometries in Oracle Spatial. thanks chris
... View more
12-30-2010
11:09 AM
|
0
|
0
|
1539
|
POST
|
Hi Vince Thanks for the help, will post your response back to the SqlSpatial forum, see what reply I get there. cheers chris
... View more
12-30-2010
05:21 AM
|
0
|
0
|
1539
|
POST
|
Hi Vince Thanks for the post I posted the same on the SqlSpatial forums and Tanoshimi points out it doesn't self intersect, so have drawn it on a piece of squared paper and it doesn't appear to self intersect. I also tried the same process as you have done i.e. created a polyline from the points loaded as an XY Event layer and it doesn't look like it crosses to me. Appreciate the help and I will have another look at it and see if I find anything different. The post on the SqlSpatial forum if your interested 🙂 http://social.msdn.microsoft.com/Forums/en-US/sqlspatial/thread/d844071c-68b6-4ce8-bbda-05f19ac4b9e0 Cheers chris
... View more
12-30-2010
03:14 AM
|
0
|
0
|
1539
|
POST
|
I should add that this table is registered with SDE and if I delete this polygon then all my other polygons in the same layer can display without problem in ArcMap.
... View more
12-30-2010
12:15 AM
|
0
|
0
|
1539
|
POST
|
Hi I have created a SqlGeometry using the Microsoft.SqlServer.Types SqlGeometryBuilder, the geometry IsValid and IsSimple but when trying to view it in ArcMap it wont draw, when trying to export to a non SqlSpatial SDE table it complains that the polygon is self intersecting. The geometry uses srid 27700 (BNG) and is viewable in SQL management Studio, I have tried various methods that are suggested to correct the geometry including MakeValid(), STUnion(STStartPoint()) on the SqlSpatial side but since it is valid and doesnt self intersect then it doesnt fix the issue. Any help is appreciated, Geometry details below Regards chris Geometry as Text...(after trying MakeValid()/StUnion(STStartPoint)) POLYGON ((531405.73999977112 104148.89000034332, 531414.71999979019 104179.65999984741, 531407.15999984741 104182.27999973297, 531406.94000005722 104182.35000038147, 531404.44000005722 104177.02000045776, 531401.59000015259 104168.47000026703, 531401.59999990463 104168.5, 531401.48999977112 104168.19999980927, 531395.61999988556 104152.19999980927, 531405.73999977112 104148.89000034332)) Geometry as Gml... <Polygon xmlns="http://www.opengis.net/gml"> <exterior> <LinearRing> <posList>531405.73999977112 104148.89000034332 531414.71999979019 104179.65999984741 531407.15999984741 104182.27999973297 531406.94000005722 104182.35000038147 531404.44000005722 104177.02000045776 531401.59000015259 104168.47000026703 531401.59999990463 104168.5 531401.48999977112 104168.19999980927 531395.61999988556 104152.19999980927 531405.73999977112 104148.89000034332</posList> </LinearRing> </exterior> </Polygon> Original gml entry from file I am importing... <gml:Polygon srsName='osgb:BNG'> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates>531406.94,104182.35 531404.44,104177.02 531401.59,104168.47 531401.60,104168.50 531401.49,104168.20 531395.62,104152.20 531405.74,104148.89 531414.72,104179.66 531407.16,104182.28 531406.94,104182.35</gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon>
... View more
12-30-2010
12:13 AM
|
0
|
22
|
7210
|
POST
|
try using WebClient WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(this.Client_DownloadStringCompleted);
string configUrl = string.Format("{0}{1}", this.Url, "?f=json");
client.DownloadStringAsync(new Uri(configUrl)); then deserialise the json result. public static T DeserializeJson<T>(string jsonString)
{
using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
try
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
T returnObject = (T)serializer.ReadObject(memoryStream);
return returnObject;
}
catch (Exception e)
{
////Logging.Log.Error("Deserialize json string");
return default(T);
}
}
} you will need to set up a class that defines the DataContract in the returned json, below is an example for the whole service (MapServer part of url without the layer index).... using System.Runtime.Serialization;
namespace Your.Namespace
{
[DataContract]
public class DocumentInfo
{
[DataMember]
public string Title { get; set; }
[DataMember]
public string Author { get; set; }
[DataMember]
public string Comments { get; set; }
[DataMember]
public string Subject { get; set; }
[DataMember]
public string Category { get; set; }
[DataMember]
public string Keywords { get; set; }
[DataMember]
public string Credits { get; set; }
}
[DataContract]
public class ExtentConfig
{
[DataMember]
public double? xmin { get; set; }.....
[DataContract]
public class ServiceConfig
{
[DataMember]
public DocumentInfo documentInfo { get; set; }
[DataMember]
public string serviceDescription { get; set; }
[DataMember]
public string mapName { get; set; }
[DataMember]
public string description { get; set; }
[DataMember]
public string copyrightText { get; set; }....
to call the desrialiser would be ServiceConfig deserialisedConfig = Serializer.DeserializeJson<ServiceConfig>(e.Result); where e.Result is the DownloadStringCompletedEventArgs parameter of your DownloadStringCompletedEventHandler on the WebClient set at the beginning should be enough for you to work out how to do it, there are other ways of doing it hope this helps regards chris
... View more
11-26-2010
04:32 AM
|
0
|
0
|
529
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|