Skip to content

Commit 5559451

Browse files
authored
Tool, readme, metadata changes (Esri#654)
* Add existing scripts and update readme for them * first draft of readme-to-json script * WIP: First cut SSG * Ignore vscode files * Enhancements to readme tool scripts * Readme script improvements * Automated Readme & Metadata json updates Content was inspected for basic issues (formatting, spelling, language, basic accuracy) on Android; fixes were automatically applied to the four other platforms. Note that accuracy of content relative to the actual UI implementation was not verified. Before merging, the readme content should be compared to the actual implementation on all platforms for all samples. * Automation cleanup * More automation changes * Automation cleanup * TOC updates + add snippets to json * Add android layouts to snippets * Remove old UWP non-sample * Update UWP samples TOC * Update SSG templates & code * UWP template changes * Split out metadata and sample solution generator * usability enhancements * Make scripts tolerant of extra empty folders * Update build batch file generation * Move back target framework version WPF template * Remove unneeded project files and refs * Fix IWA content * Add system.security reference to WPF csproj * Misc. fixes including UWP project changes * Project file changes * Fix path typo - UWP * Fix Android nuget package issue * Fix script error .sample files * Handle Android layout files * Fix forms build issues * Readme changes from reviewing WPF * Updates from UWP review * Changes from Android readme review * Changes from iOS readme review * metadata updates * metadata updates * Update scripts and doc * Fix bad merge * Update for new content * Updates per developers site requirements * Readme updates * Add features metadata and readme improvements * Metadata fixes * Terrain surface readme fixes * Python script changes from review * Fix last WPF build issue * Improve handling of Android layouts for doc build
1 parent 5866d9a commit 5559451

File tree

1,809 files changed

+57907
-6257
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,809 files changed

+57907
-6257
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,4 @@ output
222222
Components
223223
*.[Dd]esigner.cs
224224
*.bak
225+
.vscode

README.md

+34-31
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,57 @@
1-
# arcgis-runtime-samples-dotnet
1+
# ArcGIS Runtime SDK for .NET samples
22

33
This project contains samples for the ArcGIS Runtime SDK for .NET including WPF, UWP and Xamarin platforms.
44

5-
## Samples - Table of Contents
5+
## Samples tables of contents
66

7-
See Table of Contents under different platforms
8-
* [WPF](src/WPF)
9-
* [Universal Windows Platform](src/UWP)
10-
* [Xamarin.Android](src/Android)
11-
* [Xamarin.iOS](src/iOS)
12-
* [Xamarin.Forms](src/Forms)
7+
See each platform's TOC:
138

14-
## Instructions
9+
* [WPF](src/WPF)
10+
* [Universal Windows Platform](src/UWP)
11+
* [Xamarin.Android](src/Android)
12+
* [Xamarin.iOS](src/iOS)
13+
* [Xamarin.Forms](src/Forms)
14+
15+
## Instructions
1516

1617
1. Fork and then clone the repo or download the .zip file.
1718
2. Confirm the supported system configuration for the API of interest in the ArcGIS Runtime SDK for .NET:
18-
* [WPF](https://developers.arcgis.com/net/latest/wpf/guide/system-requirements.htm)
19-
* [UWP](https://developers.arcgis.com/net/latest/uwp/guide/system-requirements.htm)
20-
* [Xamarin.Android](https://developers.arcgis.com/net/latest/android/guide/system-requirements.htm)
21-
* [Xamarin.iOS](https://developers.arcgis.com/net/latest/ios/guide/system-requirements.htm)
22-
* [Xamarin.Forms](https://developers.arcgis.com/net/latest/forms/guide/system-requirements.htm)
19+
* [WPF](https://developers.arcgis.com/net/latest/wpf/guide/system-requirements.htm)
20+
* [UWP](https://developers.arcgis.com/net/latest/uwp/guide/system-requirements.htm)
21+
* [Xamarin.Android](https://developers.arcgis.com/net/latest/android/guide/system-requirements.htm)
22+
* [Xamarin.iOS](https://developers.arcgis.com/net/latest/ios/guide/system-requirements.htm)
23+
* [Xamarin.Forms](https://developers.arcgis.com/net/latest/forms/guide/system-requirements.htm)
2324
3. For the platform you want to view: open the solution, restore NuGet packages, build, and run the application
24-
* WPF: `src\Desktop\ArcGISRuntime.WPF.Viewer.sln`
25-
* UWP: `src\Windows\ArcGISRuntime.UWP.Viewer.sln`
26-
* Xamarin.Android: `src\Android\ArcGISRuntime.Xamarin.Samples.Android.sln`
27-
* Xamarin.iOS: `src\iOS\ArcGISRuntime.Xamari.Samples.iOS.sln`
28-
* Xamarin.Forms: `src\Windows\ArcGISRuntime.Xamarin.Samples.Forms.sln`
25+
* WPF: `src\Desktop\ArcGISRuntime.WPF.Viewer.sln`
26+
* UWP: `src\Windows\ArcGISRuntime.UWP.Viewer.sln`
27+
* Xamarin.Android: `src\Android\ArcGISRuntime.Xamarin.Samples.Android.sln`
28+
* Xamarin.iOS: `src\iOS\ArcGISRuntime.Xamari.Samples.iOS.sln`
29+
* Xamarin.Forms: `src\Windows\ArcGISRuntime.Xamarin.Samples.Forms.sln`
2930

30-
or
31+
or
3132

32-
* All: `src\ArcGISRuntime.Viewers.All.sln`
33-
* Windows ( WPF / UWP ): `src\ArcGISRuntime.Viewers.Windows.sln`
34-
* Xamarin (iOS, Android, Forms): `src\ArcGISRuntime.Viewers.Xamarin.sln`
33+
* All: `src\ArcGISRuntime.Viewers.All.sln`
34+
* Windows ( WPF / UWP ): `src\ArcGISRuntime.Viewers.Windows.sln`
35+
* Xamarin (iOS, Android, Forms): `src\ArcGISRuntime.Viewers.Xamarin.sln`
3536

3637
Notes:
3738

3839
When compiling Universal Windows Platform samples, make sure that you are compiling against x86/x64/ARM platform and not using AnyCPU.
3940

4041
## Requirements
4142

42-
* Supported system configurations for:
43+
* Supported system configurations for:
4344
* [WPF](https://developers.arcgis.com/net/latest/wpf/guide/system-requirements.htm)
4445
* [UWP](https://developers.arcgis.com/net/latest/uwp/guide/system-requirements.htm)
4546
* [Xamarin.Android](https://developers.arcgis.com/net/latest/android/guide/system-requirements.htm)
4647
* [Xamarin.iOS](https://developers.arcgis.com/net/latest/ios/guide/system-requirements.htm)
47-
* [Xamarin.Forms](https://developers.arcgis.com/net/latest/forms/guide/system-requirements.htm)
48+
* [Xamarin.Forms](https://developers.arcgis.com/net/latest/forms/guide/system-requirements.htm)
4849

4950
## Resources
5051

5152
* [ArcGIS Runtime SDK for .NET](http://esriurl.com/dotnetsdk)
5253

53-
## Offline Data
54+
## Offline data
5455

5556
Several samples require local data to function properly. That data is downloaded to local storage automatically at runtime.
5657
This process is handled by the `DataManager` class (located in the 'Managers' folder in each view project). Samples
@@ -68,10 +69,15 @@ Find a bug or want to request a new feature? Please let us know by submitting a
6869

6970
## Contributing
7071

71-
Anyone and everyone is welcome to [contribute] (https://github.com/Esri/arcgis-runtime-samples-dotnet/wiki/Contributing).
72+
Anyone and everyone is welcome to [contribute] (https://github.com/Esri/arcgis-runtime-samples-dotnet/wiki/Contributing).
73+
74+
## Tools
75+
76+
Esri uses several tools to more efficiently manage the content in this repo. See [Tools](tools/readme.md) for more information.
7277

7378
## Licensing
74-
Copyright 2016 Esri
79+
80+
Copyright 2019 Esri
7581

7682
Licensed under the Apache License, Version 2.0 (the "License");
7783
you may not use this file except in compliance with the License.
@@ -86,6 +92,3 @@ See the License for the specific language governing permissions and
8692
limitations under the License.
8793

8894
A copy of the license is available in the repository's [license.txt](/license.txt) file.
89-
90-
### Modern UI Icons
91-
Icons included under the Assets folder in the Phone and Store projects are from [Modern UI Icons](http://modernuiicons.com/). License information can be found at https://github.com/Templarian/WindowsIcons/blob/master/WindowsPhone/license.txt
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
11
# Distance measurement analysis
22

3-
This sample demonstrates measuring 3D distances between two points in a scene. The distance measurement analysis allows you to add the same measuring experience found in ArcGIS Pro, City Engine, and the ArcGIS API for JavaScript to your app. You can set the unit system of measurement (metric or imperial) and have the units automatically switch to one appropriate for the current scale. The rendering is handled internally so they do not interfere with other analyses like viewsheds.
3+
Measure distances between two points in 3D.
44

5-
<img src="DistanceMeasurement.jpg" width="350"/>
5+
![screenshot](DistanceMeasurement.jpg)
66

7-
## Instructions
7+
## Use case
88

9-
Tap to set a new end point for the measurement.
9+
The distance measurement analysis allows you to add to your app the same interactive measuring experience found in ArcGIS Pro, City Engine, and the ArcGIS API for JavaScript. You can set the unit system of measurement (metric or imperial).
10+
11+
## How to use the sample
12+
13+
Choose a unit system for the measurement. Click anywhere to measure the distance to that point.
14+
15+
## How it works
16+
17+
1. Create an `AnalysisOverlay` object and add it to the analysis overlay collection of the `SceneView` object.
18+
2. Specify the start location and end location to create a `LocationDistanceMeasurement` object. Initially, the start and end locations can be the same point.
19+
3. Add the location distance measurement analysis to the analysis overlay.
20+
4. The `MeasurementChanged` event will be raised if the distances change. You can get the new values for the `DirectDistance`, `HorizontalDistance`, and `VerticalDistance` from the event arguments.
21+
22+
## Relevant API
23+
24+
* AnalysisOverlay
25+
* LocationDistanceMeasurement
26+
* LocationDistanceMeasurement.MeasurementChanged
27+
28+
## Additional information
29+
30+
The `LocationDistanceMeasurement` analysis only performs planar distance calculations. This may not be appropriate for large distances where the Earth's curvature must be considered.
31+
32+
## Tags
33+
34+
3D, analysis
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"category": "Analysis",
3+
"description": "Measure distances between two points in 3D.",
4+
"formal_name": "DistanceMeasurement",
5+
"ignore": false,
6+
"images": [
7+
"DistanceMeasurement.jpg"
8+
],
9+
"keywords": [
10+
"3D",
11+
"analysis"
12+
],
13+
"nuget_packages": {
14+
"Esri.ArcGISRuntime": "100.5.0"
15+
},
16+
"offline_data": [],
17+
"redirect_from": [
18+
"/net/latest/android/sample-code/distancemeasurement.htm"
19+
],
20+
"relevant_apis": [
21+
"AnalysisOverlay",
22+
"LocationDistanceMeasurement",
23+
"LocationDistanceMeasurement.MeasurementChanged"
24+
],
25+
"snippets": [
26+
"DistanceMeasurement.cs",
27+
"../../../Resources/layout/DistanceMeasurement.axml"
28+
],
29+
"title": "Distance measurement analysis"
30+
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,40 @@
1-
# Line of sight (GeoElement)
1+
# Line of sight (geoelement)
22

3-
This sample demonstrates how to perform a dynamic line of sight analysis between two moving GeoElements.
3+
Show a line of sight between two moving objects.
44

5-
<img src="LineOfSightGeoElement.jpg" width="350"/>
5+
![screenshot](LineOfSightGeoelement.jpg)
66

7-
## Instructions
7+
## Use case
88

9-
Use the slider to adjust the height of the observer.
9+
A line of sight between `GeoElement`s (i.e. observer and target) will not remain constant whilst one or both are on the move.
10+
11+
A `GeoElementLineOfSight` is therefore useful in cases where visibility between two `GeoElement`s requires monitoring over a period of time in a partially obstructed field of view
12+
(such as buildings in a city).
13+
14+
## How to use the sample
15+
16+
A line of sight will display between a point on the Empire State Building (observer) and a taxi (target).
17+
The taxi will drive around a block and the line of sight should automatically update.
18+
The taxi will be highlighted when it is visible. You can change the observer height with the slider to see how it affects the target's visibility.
19+
20+
## How it works
21+
22+
1. Instantiate an `AnalysisOverlay` and add it to the `SceneView`'s analysis overlays collection.
23+
2. Instantiate a `GeoElementLineOfSight`, passing in observer and target `GeoElement`s (features or graphics). Add the line of sight to the analysis overlay's analyses collection.
24+
3. To get the target visibility when it changes, react to the target visibility changing on the `GeoElementLineOfSight` instance.
25+
26+
## Relevant API
27+
28+
* AnalysisOverlay
29+
* GeoElementLineOfSight
30+
* LineOfSight.TargetVisibility
31+
32+
## Offline data
33+
34+
This sample downloads the following items from ArcGIS Online automatically:
35+
36+
* [Dolmus3ds.zip](https://www.arcgis.com/home/item.html?id=3af5cfec0fd24dac8d88aea679027cb9) - 3D model of a yellow taxi
37+
38+
## Tags
39+
40+
Analysis, line of sight, visibility
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"category": "Analysis",
3+
"description": "Show a line of sight between two moving objects.",
4+
"formal_name": "LineOfSightGeoElement",
5+
"ignore": false,
6+
"images": [
7+
"LineOfSightGeoelement.jpg"
8+
],
9+
"keywords": [
10+
"Analysis",
11+
"line of sight",
12+
"visibility"
13+
],
14+
"nuget_packages": {
15+
"Esri.ArcGISRuntime": "100.5.0"
16+
},
17+
"offline_data": [
18+
"3af5cfec0fd24dac8d88aea679027cb9"
19+
],
20+
"redirect_from": [
21+
"/net/latest/android/sample-code/lineofsightgeoelement.htm"
22+
],
23+
"relevant_apis": [
24+
"AnalysisOverlay",
25+
"GeoElementLineOfSight",
26+
"LineOfSight.TargetVisibility"
27+
],
28+
"snippets": [
29+
"LineOfSightGeoElement.cs"
30+
],
31+
"title": "Line of sight (geoelement)"
32+
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,30 @@
1-
# Line of sight from location
1+
# Line of sight (location)
22

3-
This sample demonstrates a `LocationLineOfSight` analysis that shows segments that are visible or obstructed along a line drawn from observer to target.
3+
Perform a line of sight analysis between two points in real time.
44

5-
<img src="LineOfSightLocation.jpg" width="350"/>
5+
![screenshot](LineOfSightLocation.jpg)
66

7-
## Instructions
7+
## Use case
88

9-
Click to define a location for the observer, then again to define the target. The result will show visible segments in cyan and obstructed ones in magenta.
9+
A line of sight analysis can be used to assess whether a view is obstructed between an observer and a target. Obstructing features could either be natural, like topography, or man-made, like buildings. Consider an events planning company wanting to commemorate a national event by lighting sequential beacons across hill summits or roof tops. To guarantee a successful event, ensuring an unobstructed line of sight between neighboring beacons would allow each beacon to be activated as intended.
10+
11+
## How to use the sample
12+
13+
Tap to place the starting point for the line. Tap again to place the end point.
14+
15+
## How it works
16+
17+
1. Create an `AnalysisOverlay` and add it to the scene view.
18+
2. Create a `LocationLineOfSight` with initial observer and target locations and add it to the analysis overlay.
19+
3. Listen for taps on the scene view..
20+
4. Update the target location with `lineOfSight.TargetLocation = scenePoint`.
21+
22+
## Relevant API
23+
24+
* AnalysisOverlay
25+
* LocationLineOfSight
26+
* SceneView
27+
28+
## Tags
29+
30+
3D, line of sight, visibility analysis
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"category": "Analysis",
3+
"description": "Perform a line of sight analysis between two points in real time.",
4+
"formal_name": "LineOfSightLocation",
5+
"ignore": false,
6+
"images": [
7+
"LineOfSightLocation.jpg"
8+
],
9+
"keywords": [
10+
"3D",
11+
"line of sight",
12+
"visibility analysis"
13+
],
14+
"nuget_packages": {
15+
"Esri.ArcGISRuntime": "100.5.0"
16+
},
17+
"offline_data": [],
18+
"redirect_from": [
19+
"/net/latest/android/sample-code/lineofsightlocation.htm"
20+
],
21+
"relevant_apis": [
22+
"AnalysisOverlay",
23+
"LocationLineOfSight",
24+
"SceneView"
25+
],
26+
"snippets": [
27+
"LineOfSightLocation.cs"
28+
],
29+
"title": "Line of sight (location)"
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"category": "Analysis",
3+
"description": "Zoom to features matching a query and count the features in the current visible extent.",
4+
"formal_name": "QueryFeatureCountAndExtent",
5+
"ignore": false,
6+
"images": [
7+
"QueryFeatureCountAndExtent.jpg"
8+
],
9+
"keywords": [
10+
"Feature layer",
11+
"Feature table",
12+
"Medicare",
13+
"Query"
14+
],
15+
"nuget_packages": {
16+
"Esri.ArcGISRuntime": "100.5.0"
17+
},
18+
"offline_data": [],
19+
"redirect_from": [
20+
"/net/latest/android/sample-code/queryfeaturecountandextent.htm"
21+
],
22+
"relevant_apis": [
23+
"FeatureTable.QueryExtentAsync",
24+
"FeatureTable.QueryFeatureCountAsync",
25+
"MapView.GetCurrentViewpoint(ViewpointType)",
26+
"QueryParameters",
27+
"QueryParameters.Geometry",
28+
"QueryParameters.SpatialRelationship",
29+
"QueryParameters.WhereClause"
30+
],
31+
"snippets": [
32+
"QueryFeatureCountAndExtent.cs"
33+
],
34+
"title": "Query feature count and extent"
35+
}

0 commit comments

Comments
 (0)