Skip to content

Instantly share code, notes, and snippets.

🚀
respekt

steveoh steveoh

🚀
respekt
View GitHub Profile
@steveoh
steveoh / update_symbology.py
Created Nov 13, 2017
Update layer symbology with arcpy
View update_symbology.py
import json
import arcpy
def resize_symbol(layer):
if not layer.isFeatureLayer:
return
symbology = json.loads(layer._arc_object.getsymbology())
@steveoh
steveoh / splitline.cs
Last active Dec 8, 2017
split a line based on a user click
View splitline.cs
var shape = (Polyline)row["Shape"];
var point = (MapPoint)GeometryEngine.Instance.Project(userClickGeometry, shape.SpatialReference);
var proximity = GeometryEngine.Instance.NearestPoint(shape, point);
var distance = proximity.Distance * 2;
var vertices = new List<Coordinate2D>
{
new Coordinate2D(point),
new Coordinate2D(proximity.Point),
@steveoh
steveoh / swap_code_for_value.py
Last active Dec 13, 2017
replaces the code for value in a new _value field
View swap_code_for_value.py
def replace_codes_with_values(feature_class, field_info, domain_info):
field_domain_map = [(field, field.domain) for field in field_info if field.domain]
fields = [field[0] for field in field_domain_map]
field_names = [field.name for field in fields]
domain_names = [domain[1] for domain in field_domain_map]
domain_lookup = {}
for name in domain_names:
domain_lookup[name] = [domain for domain in domain_info if domain.name == name][0]
@steveoh
steveoh / 2018devsummit.md
Last active Mar 19, 2018
dev summit recap
View 2018devsummit.md

devsummit 2018

  • maturaty dev summit. not many ground breaking features. more polish
  • Machine learning and AI were big this year with the keynote being from microsoft and the introduction of a geovm in azure that can be provisioned.
  • Some cool demo's on training models to understand data and then letting them predict the future or act on other data was pretty cool.
  • https://jfkfiles2.azurewebsites.net/
  • utah roads/crash data was used in the keynote

Geocoding

  • 10.6 has a new geocoding engine but users can't create them until pro 2.2. around UC
@steveoh
steveoh / pro-addin-version.cs
Created Mar 28, 2018
get the version info from a pro addin
View pro-addin-version.cs
var myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var arcGisProLocation = Path.Combine(myDocs, "ArcGIS", "AddIns", "ArcGISPro");
var attribute = (GuidAttribute) _assembly.GetCustomAttributes(typeof(GuidAttribute), true)[0];
var proAddinFolder = $"{{{attribute.Value}}}";
var addinFolder = Path.Combine(arcGisProLocation, proAddinFolder);
if (!Directory.Exists(addinFolder))
return null;
@steveoh
steveoh / get all domains.sql
Last active Mar 13, 2019
get domain name/code/value from an SDE database
View get all domains.sql
SELECT
cv_domain.value('DomainName[1]', 'nvarchar(50)') AS 'DomainName',
coded_value.value('Code[1]','nvarchar(50)') AS 'Code',
coded_value.value('Name[1]','nvarchar(50)') AS 'Value'
FROM
sde.GDB_ITEMS AS items INNER JOIN sde.GDB_ITEMTYPES AS itemtypes ON
items.Type = itemtypes.UUID
CROSS APPLY
items.Definition.nodes('/GPCodedValueDomain2/CodedValues/CodedValue') AS CodedValues(coded_value)
CROSS APPLY
@steveoh
steveoh / unused_domains.py
Last active Jul 11, 2020
list usused domains and fields with domain
View unused_domains.py
from pprint import pprint
import arcpy
arcpy.env.workspace = r'stage.sde'
output = {}
tables = []
for dirpath, dirnames, walked_tables in arcpy.da.Walk(datatype=['FeatureClass', 'Table']):
@steveoh
steveoh / react-refactorings-map.js
Last active Jun 5, 2019
common react refactorings... removing duplication with `map`
View react-refactorings-map.js
export default () => {
const [active, setActive] = useState('agent');
return (
<div fluid className="filter-selector">
<ButtonGroup>
<Button color={active === 'agent' ? 'warning' : 'secondary'} onClick={() => setActive('agent')}>Agent</Button>
<Button color={active === 'offender' ? 'warning' : 'secondary'} onClick={() => setActive('offender')}>Offender</Button>
<Button color={active === 'location' ? 'warning' : 'secondary'} onClick={() => setActive('location')}>Location</Button>
<Button color={active === 'date' ? 'warning' : 'secondary'} onClick={() => setActive('date')}>Date</Button>
@steveoh
steveoh / overflow fade.css
Created Jun 18, 2019
fade the bottom of an element
View overflow fade.css
.shorten-sm {
height: 50px;
overflow: hidden;
position: relative;
}
.shorten-sm:before {
content: '';
width: 100%;
height: 100%;
View search tables.json
[
{
"request_count": "9590125",
"search_table": "sgid10.boundaries.municipalities"
},
{
"request_count": "9509793",
"search_table": "sgid10.location.zipplus4points"
},
{
You can’t perform that action at this time.