|
POST
|
Hi, The 1000 feature limit is just the default (same limit as for an online / ArcGIS Server feature layer). You can override this via the MaxRecords property on the LocalFeatureService (before the service is started). e.g. LocalFeatureService localFeatureService = new LocalFeatureService() { MaxRecords = 10000, Path = "path to Map Package (.mpk)", }; Or it's also settable via one of the overloads on the LocalFeatureService.GetService() / GetServiceAsync() convenience methods. e.g. LocalFeatureService.GetServiceAsync("path to Map Package (.mpk)", 10000,(service)=> { //... }); However - I'd be interested in more details on why you need to use a want to put these 10,000 points in a LocalFeatureLayer or FeatureLayer instead of using a dynamic map service layer? - i.e. what additional functionality are you looking for? Cheers Mike
... View more
12-07-2011
10:50 PM
|
0
|
0
|
1118
|
|
POST
|
Hi, Point to point routing, service areas, closest facility, etc are already available within Beta 1 - you'll need to use the Advanced license string for anything beyond the point to point routing (multistop). the workflow for all these tools is to create a Geoprocessing package. We'll publish a list of all the GP tools available when Beta 2 ships. Cheers Mike
... View more
12-06-2011
12:28 AM
|
0
|
0
|
1967
|
|
POST
|
Hi, Beta 2 should be quite soon, hopefully within the next few weeks. Cheers Mike
... View more
12-01-2011
11:35 PM
|
0
|
0
|
1967
|
|
POST
|
Hi, Yes, in Beta 2 there are GP tool equivalents for some of the packaging/sharing dialogs which are otherwise accessed from the File menu and it's relatively straightforward to call GP tools from an ArcGIS Engine application. In the ArcToolbox window (ArcMap/ArcCatalog) take a look at the Data Management toolbox > Package toolset. At Beta 2 I believe this toolset includes GP tools for creating Map Packages (.MPK) and Address Locator Packages (.APK). GP tools for working with the other package types are planned to follow. Geoprocessing packages have a more involved workflow because they can only be created from valid GP results (currently from the Geoprocessing results window within ArcMap) in order that the full tool execution is verified. Cheers Mike
... View more
11-30-2011
11:38 PM
|
0
|
0
|
1967
|
|
POST
|
Hi Michael, The GPS support due in Beta 2 is an excellent start but I'd be very keen to hear your requirements for more advanced GPS functionality. If you'd rather not post specific details in the forum then please email me: [email protected]. Cheers Mike
... View more
11-25-2011
03:46 AM
|
0
|
0
|
1169
|
|
POST
|
Hi, In Beta 1 there was not any GPS support within the API (although you could of course use .NET or 3rd party GPS libraries and use the GraphicsLayer to display the location). In Beta 2 we've added a GPSLayer class and a GPS library which enables you to connect to Serial Port and File-based GPS NMEA streams. The GPSLayer will work with any thing which implements the IGeoPositionWatcher interface which means it will hook into the new Sensor and Location Platform on Windows 7. This uses your IP address to locate you by default but you can install other location sensors, such as the Geosense for Windows sensor (http://geosenseforwindows.com/) which, if you are connected to a WIFI network, will use the SSID of that network to locate you. You cam also implement fake GPS feeds - Morten Nielsen has written an article with a couple of examples: http://sharpgis.net/post/2010/12/09/Simulating-GPS-on-Windows-Phone-7.aspx. As I said - this is all in Beta 2 which should be available within the next few weeks. Cheers Mike
... View more
11-22-2011
11:09 PM
|
0
|
0
|
1169
|
|
POST
|
Hi, To do this in code you can register a handler for the EditorWidget Loaded event then in code within the handler, set the GeometryServiceUrl property on the EditorWidget. In the code below a class member has been declared for the Local Geometry Service which is started in the default constructor (before the InitializeComponent call). Alternatively you could start the LocalGeometryService in the handler. XAML: <esri:EditorWidget x:Name="_EditorWidget" Map="{Binding ElementName=MapControl}" Width="300" AutoSelect="False" ShowAttributesOnAdd="True" Loaded="_EditorWidget_Loaded"/> CODE: // Class member for LocalGeometryService LocalGeometryService _LocalGeometryService = new LocalGeometryService(); // Default constructor public MainWindow() { _LocalGeometryService.Start(); InitializeComponent(); ... ... //Other code e.g. for spinning up a LocalFeatureService ... } // EditorWidget Loaded handler private void _EditorWidget_Loaded(object sender, RoutedEventArgs e) { _EditorWidget.GeometryServiceUrl = _LocalGeometryService.UrlGeometryService; } Cheers Mike
... View more
11-22-2011
12:04 AM
|
0
|
0
|
1229
|
|
POST
|
Hi Shawn (and thanks kuiperfoliage), As you've suggested the main route for packaging Geoprocessing tools is indeed via the ArcMap UI (Python is entirely optional). The first thing to say is that the process for creating Geoprocessing tools for the ArcGIS Runtime is very similar to that of creating GP tools for ArcGIS Server. Here are some pointers that should help get it right: #0. Check that your input and outputs match the supported GP input/output datatypes, if necessary using additional GP tools to massage the data format or select a subset of content. #1. Use the %ScratchWorkspace% environment variable for any intermediate/output data (this means ArcGIS Desktop, ArcGIS Runtime and any other ArcGIS applications know where to write the intermediate/output data, for example instead of using C:\data). This is really just a good practice tip - ArcGIS will actually fix this up for you during the packaging process. #2. Ensure you have set the input(s) AND output as Model Parameters (right click and choose "Model Parameter"). NOTE: Be careful about the order in which you do this as it determines the order in which the parameters are expected when the tool is run. You can open the model properties dialog to confirm (and adjust) the order of the parameters. The output/derived parameter should really always be last. #3. Run the Geoprocessing tool once within ArcMap to get a successful execution and results. #4. Share the Geoprocessing result from the Results Window as a Geoprocessing Package. NOTE: Ensure you check the option to support the ArcGIS Runtime - this is enabled by switching on the support ArcGIS Runtime option in the ArcMap Customize > ArcMap Options > Sharing menu. #5. When programmatically running the GP tool, the order in which you provide the input parameters MUST be exactly the same as the order in which they were defined in the model. The parameter names must also match. you do not need to specify the output parameter. #6. When using the GPK in code, insert a breakpoint after the local geoprocessing service is started. Once the breakpoint is hit - check the Error property to confirm there was no problem encountered starting the service. Then get the UrlGeoprocessingService property and paste it into a browser (while the app is still in debug mode and the local server is still running). This will display the HTML view of the server which will tell you what tool(s) are in your GP package and what parameters each tool expects. I've checked the desktop documentation you referred to - and you're correct the example Python syntax is incorrect - you do definitely need to specify the full path for where you want to save the GPK file. Cheers Mike
... View more
11-17-2011
06:02 AM
|
0
|
0
|
1861
|
|
POST
|
Hi, Thanks for putting together a repro. Unless I have misunderstood the point of the repro app, I believe the cause of your issue is that you're effectively declaring two InitializeCompleted event handlers - one as a callback in the overloaded InitializeAsync method and one via a lambda expression, i.e. any code within *both* #1 and #2 below will be executed when the LocalServer has finished initializing: #1. LocalServer.InitializeAsync(() => { ... }); #2. LocalServer.InitializeCompleted += (sender, e) => { ... }; BUT, it's also worth noting that by declaring an event handler via a lambda expression *after* the async call for which it's intended to handle the response, you run the risk of that code never executing (i.e. #2 above might be called because the event has been raised before the handler was registered). Better would be to write the code something like this: LocalServer.InitializeAsync(() =>
{
if (LocalServer.LicenseStatus != LicenseStatus.Valid)
{
MessageBox.Show("This ArcGIS Runtime license is not valid");
}
LocalGeoprocessingService lgs = new LocalGeoprocessingService(@"C:\...\GeoprocessingTool.GPK", GPServiceType.SubmitJob);
lgs.StartAsync((d) =>
{
if (d.Error != null)
{
MessageBox.Show(string.Format("{0}", d.Error.Message));
}
});
}); We are planning to write conceptual documentation on the subject of the ArcGIS Runtime and asynchronous programming patterns before it's release. I've been testing your repro app with a Beta 1 Runtime/LocalServer on my laptop which has very similarly specs (Intel i7-2820QM @ 2.30GHz, 8GB RAM, 64-bit, SSD) but unfortunately have not been able to reproduce the issue. Cheers Mike
... View more
11-16-2011
04:44 AM
|
0
|
0
|
2153
|
|
POST
|
Hi, I you are able to post/send a reproducer app (with a sample of your data) I can attempt to reproduce the issue you're seeing - both on a Beta 1 local server and against a daily build. We have some similarly specc'd machines here. If you're not able to upload the app/data to the forum (file types/sizes are restricted) you can email me on [email protected]. Unfortunately I can't give a specific date when Beta 2 of the ArcGIS Runtime SDK for WPF will be available - but we hope to make it available within the next 4-6 weeks. Cheers Mike
... View more
11-15-2011
11:37 PM
|
0
|
0
|
2153
|
|
POST
|
Hi, ## 1. Coded Value Domains ## The following information comes from a blog post which details how you can utilize coded values for a domain defined on attribute fields in geodatabase for display at runtime (e.g. in MapTips, DataGrids, etc.). Information about a feature layer can be used to discover coded values established via a domain applied to a field. While feature attributes contain actual data values, coded values are often used to more effectively describe and present attribute information. For example, actual data values of 1, 2, and 3 may represent New, Open, and Closed. A domain can be used to establish more descriptive values (New, Open, Closed) for codes (1.2,3) which changing the underlying data structure. In the ArcGIS Runtime SDK for WPF, controls such as the FeatureDataGrid and the FeatureDataForm convert actual data values into coded values for you at runtime. The API also provides developers with a couple of utility classes to convert actual values to coded values for use in other controls or workflows. The example below illustrates how to utilize coded values for a field in a feature layer using the CodedValueSources and CodedValueDomainConverter classes included in the API's Toolkit library (ESRI.ArcGIS.Client.Toolkit.dll). The coded values are displayed in map tips enabled on a feature layer. In order to get started, first add references to these classes in XAML as resources: <Grid.Resources>
<esriToolkitUtilities:CodedValueDomainConverter x:Key="codedValueDomainConverter" />
<esriToolkitUtilities:CodedValueSources x:Key="codedValueSourcesStatusField" />
</Grid.Resources> The CodedValueSources instance represents a list of codes and values (descriptions) which can be populated upon feature layer initialization: public partial class CodedValueDomainExample : UserControl
{
CodedValueSources codedValueSourcesStatusField;
public CodedValueDomainExample()
{
InitializeComponent();
codedValueSourcesStatusField = LayoutRoot.Resources["codedValueSourcesStatusField"] as CodedValueSources;
}
private void FeatureLayer_Initialized(object sender, EventArgs e)
{
FeatureLayer flayer = sender as FeatureLayer;
foreach (Field field in flayer.LayerInfo.Fields)
{
if (field.Name == "status")
{
CodedValueDomain codedValueDomain = field.Domain as CodedValueDomain;
foreach (KeyValuePair<object, string> codeVal in
codedValueDomain.CodedValues)
codedValueSourcesStatusField.Add(new CodedValueSource()
{
Code = codeVal.Key,
Name = codeVal.Value == null ? "" : codeVal.Value
});
break;
}
}
}
} And finally, establish a binding to the attribute field on which a domain�??s coded values should be used. The CodedValueDomainConverter will convert actual data values to coded values present in the CodedValueSources instance: <esri:FeatureLayer
Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"
OutFields="req_type, status"
Mode="OnDemand"
Initialized="FeatureLayer_Initialized">
<esri:FeatureLayer.MapTip>
<Border CornerRadius="10" Background="Azure" BorderBrush="Black" BorderThickness="2">
<StackPanel Margin="5">
<TextBlock Text="{Binding [req_type]}" FontWeight="Bold" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Incident Status: " />
<TextBlock Text="{Binding [status],
Converter={StaticResource codedValueDomainConverter},
ConverterParameter={StaticResource codedValueSourcesStatusField}}" />
</StackPanel>
</StackPanel>
</Border>
</esri:FeatureLayer.MapTip>
</esri:FeatureLayer> ## 2. Editing Tables ## If you looking for a UI control approach then you can use the FeatureDataForm in the toolkit assembly. The FeatureDataForm adjusts its field container based on the field type. For example, a coded-value domain will use ComboBox instead of TextBox, a DateTime will use DateTimePicker. Attribute values are also converted to their corresponding type. Validation and saving edits are handled by the FeatureDataForm. Alternatively you can edit tables directly in the same way you would edit a feature layer �?? you just omit a geometry. Here�??s some sample code from a colleague to help work with LayerInfo.Fields and/or FeatureTemplate/PrototypeAttributes: var graphic = new Graphic();
if (l.LayerInfo == null) return;
//use LayerInfo.Fields
foreach (var field in l.LayerInfo.Fields)
graphic.Attributes[field.Name] = null;
//use PrototypeAttributes
FeatureTemplate featureTemplate = null;
if (l.LayerInfo.Templates != null && l.LayerInfo.Templates.Count > 0)
featureTemplate = l.LayerInfo.Templates.FirstOrDefault().Value;
else if (l.LayerInfo.FeatureTypes != null && l.LayerInfo.FeatureTypes.Count > 0)
{
var featureType = l.LayerInfo.FeatureTypes.FirstOrDefault();
if (featureType.Value != null && featureType.Value.Templates != null)
featureTemplate = featureType.Value.Templates.FirstOrDefault().Value;
}
if (featureTemplate != null && featureTemplate.PrototypeAttributes != null)
{
foreach (var item in featureTemplate.PrototypeAttributes)
graphic.Attributes[item.Key] = item.Value;
} Cheers Mike
... View more
11-15-2011
11:29 PM
|
0
|
0
|
1636
|
|
POST
|
Hi, Glad to hear it's working again but it's unfortunate that we may not be able to find out the cause of the problem. Could it be something to do with the vshost process itself? As I said in a previous post on another thread - since beta 1 we've introduced quite comprehensive logging which, as a developer, you'll be able to enable and set the verboseness. Cheers Mike
... View more
11-14-2011
07:30 AM
|
0
|
0
|
2153
|
|
POST
|
Hi, Thanks for the post - we'll investigate. Cheers Mike
... View more
11-12-2011
01:49 AM
|
0
|
0
|
914
|
|
POST
|
Hi, You'll be pleased to hear that since Beta 1 we have several changes which help significantly when trying to debug ArcGIS Runtime applications. There are two aspects to this. the first is http traffic monitoring (which is what you're trying to achieve). The second aspect is logging support in the ArcGIS Runtime - written out as readable text files. In Beta 2, both these options will be configurable via the json file you have found. In the future we're looking at making these settings configurable via a GUI and also providing better GUI access to the log files for debugging purposes. , both of which are preferable to having people make their own changes to the JSON file. Cheers Mike
... View more
11-12-2011
12:02 AM
|
0
|
0
|
1388
|
|
POST
|
Hi Miri, This thread relates to a very specific issue with multiple graphics configurations... Can you confirm that exactly the same application/data works fine on other machines and it is just this particular model which exhibits the problem? Does this machine have a multi graphics card configuration? If so - can you try disabling first one graphics driver and running your ArcGIS Runtime app then [re]enable that driver and disable the other graphics driver and try running the application again? Also - are you using the ArcGIS Runtime version you were given at the workshop? (as opposed to Beta 1). Cheers Mike
... View more
11-11-2011
12:03 AM
|
0
|
0
|
427
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 04-14-2026 05:04 AM | |
| 1 | 02-20-2024 07:02 AM | |
| 1 | 01-19-2026 06:44 AM | |
| 1 | 12-10-2025 07:16 AM | |
| 1 | 11-21-2025 08:12 AM |
| Online Status |
Offline
|
| Date Last Visited |
3 weeks ago
|