|
IDEA
|
So I came across Contingent Values yesterday while researching this further. Not sure if they are supported in Survey123.
... View more
02-18-2020
06:17 AM
|
0
|
0
|
1942
|
|
IDEA
|
Instead of being required to make multiple fields to support different sets of values constraints in a dropdown, it would be nice to be able to just have all of those values populate into a single field and just constrain the eligible values. Essentially, I'm asking for subtype support. Case in point: Let's say I want to ask for the user for the address of a location and I want those values parsed. That's easy, let's set up a couple of questions to gather that information. Okay, but my locations could be in any country. To keep things simple, let's just say it could be in North America. Pretty straightforward, lets just add a Country question. Oh! but my State question is a dropdown because I want the user to select a valid state and I'd like to avoid misspellings. Or perhaps I want to give them full state names but only keep the abbreviations in the table. Whatever my reason, it's a dropdown. Hmm...states from three different countries. That's going to be a long dropdown! We could use Autocomplete here to negate those length effects, but there's nothing stopping them from selecting the wrong value now is there? And with more choices, those odds also increase. Okay. Let's address this. Survey123 Rules to the rescue! Let's set up a State dropdown for each country, containing only the state values for its respective country, then we'll set up a Rule on the Country dropdown to show the appropriate State dropdown based on the Country selection! Problem solved! Or is it? When you go to publish and modify the schema, you find that each of these individual State dropdowns now has its own respective field, with its own respective domain. Totally makes sense and that works for most use cases. But not this one. No one would want their state values spread across three different fields just because the state is located in a different country. Doing that means that you've got a to implement a lot more logic whenever you're trying to feed an address into another system or perform a URL call. You're never sure which field to grab the state value from unless you implement additional logic in your app to identify the country. TLDR; Give me a rule that lets me have a single or multi-choice to which a rule can be attached, which allows me to constrain which values from another single or multichoice list that will appear in that item, based on the selected value in the question on which the rule was applied. Something like: If COUNTRY == 'United States' then in STATE only show values ['AL', 'AK', 'AR', ...] If COUNTRY == 'Canada' then in STATE only show values ['AB', 'BC', 'MB', ...] If COUNTRY == 'Mexico' then in STATE only show values ['AG', 'BC', 'BS', ...] One State Field. Many possible values but which value(s) are eligible for selection depends on the country you selected.
... View more
02-15-2020
06:13 PM
|
1
|
2
|
1995
|
|
IDEA
|
Sounds like a good ol fashioned regression bug to me. Have you called Esri Support to see if they can reproduce the behavior? If they can, they will mark it as a bug and hopefully Esri will fix it.
... View more
02-12-2020
10:02 AM
|
2
|
0
|
3265
|
|
BLOG
|
Thank gawd. Idk anything about Khoros but any change is welcome change for me at this point.
... View more
02-12-2020
06:39 AM
|
1
|
0
|
2750
|
|
IDEA
|
That’s very strange behavior. I might understand if there was already a JamesBond user, then you couldn’t create another one because Esri wouldn’t know which of the two with the same username is logging in. It sounds like you’re saying even after you delete JamesBond, you can’t have a user named JamesBond? I’d wonder if perhaps there is some index you might need to rebuild or something after deleting JamesBond. Try reaching out to Kelly Gerrow about this. Something seems...not right.
... View more
02-12-2020
06:22 AM
|
1
|
1
|
3978
|
|
POST
|
I'm trying to get an JSON API response with latitude and longitude keys into a Spatial DataFrame so that I can create a hosted feature service from it. Frankly, I'm quite out of practice with Python and I feel like I'm just learning it all over again. I don't want to use ArcPy to accomplish this even though I know it has the JSONToFeatures_conversion tool or in an advanced notebook. The SpatialDataFrame route is not a requirement. It just seemed the most obvious to me. The goal is to be able to create a new Hosted Feature Service from the JSON Response which looks like: [{
"Points": [{
"SiteId": 521,
"Latitude": 41.496978,
"Longitude": -95.451919,
"Address1": "10 East Street",
"Address2": null,
"AddressId": 0,
"AddressTypeId": 0,
"City": "Shelby",
"Comments": null,
"County": null,
"Name": "Site 426",
"StoreUrl": "http://myloves426.com",
"SpecialInstructions": null,
"State": "IA",
"Zip": "51570",
"ExitNumber": "34",
"Highway": "I-80",
"PhoneNumber": "(712) 207-2441",
"MapPinId": "e1ff88a9cdba42009a68a6bdbe86b71a",
"MapPinZIndex": 99999999,
"FacilityId": 5712
}, {
"SiteId": 978,
"Latitude": 42.652564,
"Longitude": -88.542025,
"Address1": "100 E Commerce Ct",
"Address2": null,
"AddressId": 0,
"AddressTypeId": 0,
"City": "Elkhorn",
"Comments": null,
"County": null,
"Name": "Site 752",
"StoreUrl": "http://myloves752.com",
"SpecialInstructions": null,
"State": "WI",
"Zip": "53121",
"ExitNumber": "25",
"Highway": "I-43",
"PhoneNumber": "(262) 723-8888",
"MapPinId": "e1ff88a9cdba42009a68a6bdbe86b71a",
"MapPinZIndex": 99999999,
"FacilityId": 6485
}],
"FuelPrices": null,
"StateAbbreviation": null,
"CustomFields": null
}]
So far, I've been able to get it into a standard pandas df using: import pandas as pd
import requests
import json
points = json.loads(requests.get("https://www.loves.com/api/sitecore/StoreSearch/SearchStores").text)
df = pd.DataFrame(points)
#print(df) However, I don't know where to go from here in terms of turning that response into a hosted feature service based on the latitude and longitude keys given in the response - I do not want to geocode here as I already have the coordinates. I've also tried using FeatureSet.from_dict method in the Python API, which I presume I should be able to turn into a Hosted Feature Service with relative ease, but I can't get the features loaded into a Featureset from the dictionary for some reason. Here's the code I'm working with currently for that approach: import requests
import json
import arcgis
from arcgis.gis import GIS
from getpass import getpass
portal = GIS("https://johns.maps.arcgis.com", "john.m.dye", getpass())
portal.users.me
lovesLocator = "https://www.loves.com/api/sitecore/StoreSearch/SearchStores"
response = json.loads(requests.get(lovesLocator).text)[0]
type(response)
# dict
fs = arcgis.features.FeatureSet.from_dict(response)
print(fs)
# {"features": [], "fields": []} [update 2/8/2020] I was able to solve my initial problem this morning thank's to PerAkeMattias comment on a separate but similar question. It basically, I needed to just use the SpatialDataFrame.from_xy method to create a Spatial Dataframe, passing in my Latitude and Longitude fields from my pandas DataFrame to get my locations plotted. From there, I expected to be able to use the SpatialDataFrame.to_featurelayer method to publish it, but I'm running into a TypeError and I'm not sure why. import requests
import json
import arcgis
from arcgis.gis import GIS
from getpass import getpass
import pandas as pd
portal = GIS("https://johns.maps.arcgis.com", "john.m.dye", getpass())
portal.users.me
response = json.loads(requests.get("https://www.loves.com/api/sitecore/StoreSearch/SearchStores").text)[0]["Points"]
df = pd.DataFrame(response)
print(df)
sdf = arcgis.features.SpatialDataFrame.from_xy(df, "Longitude", "Latitude", sr=4326)
print(sdf)
m1 = GIS().map('United States')
m1.zoom = 4
m1.center = [39,-98]
sdf.plot(kind='map', map_widget= m1)
m1
sdf.to_featurelayer(title="lovesTest", gis=portal, tags="test, loves") Unfortunately, I'm seeing a TypeError returned and I'm not sure why: ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-bbe2612cd7ab> in <module>
----> 1 sdf.to_featurelayer(title="lovesTest", gis=portal, tags="test, loves")
/anaconda3/lib/python3.7/site-packages/arcgis/features/_data/geodataset/geodataframe.py in to_featurelayer(self, title, gis, tags)
1727 raise ValueError("GIS object must be provided")
1728 content = gis.content
-> 1729 return content.import_data(self, title=title, tags=tags)
1730 #----------------------------------------------------------------------
1731 def set_geometry(self, col, drop=False, inplace=False, sr=None):
/anaconda3/lib/python3.7/site-packages/arcgis/gis/__init__.py in import_data(self, df, address_fields, **kwargs)
3666 if isinstance(df, SpatialDataFrame) :
3667 ds = df.to_featureclass(out_location=temp_dir,
-> 3668 out_name=name)
3669 else:
3670 ds = df.spatial.to_featureclass(
/anaconda3/lib/python3.7/site-packages/arcgis/features/_data/geodataset/geodataframe.py in to_featureclass(self, out_location, out_name, overwrite, skip_invalid)
1407 out_location=out_location,
1408 out_name=out_name,
-> 1409 overwrite=overwrite, skip_invalid=skip_invalid)
1410 #----------------------------------------------------------------------
1411 def to_hdf(self, path_or_buf, key, **kwargs):
/anaconda3/lib/python3.7/site-packages/arcgis/features/_data/geodataset/io/fileops.py in to_featureclass(df, out_name, out_location, overwrite, out_sr, skip_invalid)
599 return _pyshp_to_shapefile(df=df,
600 out_path=out_location,
--> 601 out_name=out_name)
602 else:
603 raise Exception("Cannot Export the data without ArcPy or PyShp modules. "+ \
/anaconda3/lib/python3.7/site-packages/arcgis/features/_data/geodataset/io/fileops.py in _pyshp_to_shapefile(df, out_path, out_name)
93 if idx > -1:
94 geom_type = df.loc[idx][geom_field].type
---> 95 shpfile = shapefile.Writer(GEOMTYPELOOKUP[geom_type])
96 shpfile.autoBalance = 1
97 row_cols = []
/anaconda3/lib/python3.7/site-packages/shapefile.py in __init__(self, target, shapeType, autoBalance, **kwargs)
1015 self.shp = self.shx = self.dbf = None
1016 if target:
-> 1017 self.shp = self.__getFileObj(os.path.splitext(target)[0] + '.shp')
1018 self.shx = self.__getFileObj(os.path.splitext(target)[0] + '.shx')
1019 self.dbf = self.__getFileObj(os.path.splitext(target)[0] + '.dbf')
/anaconda3/lib/python3.7/posixpath.py in splitext(p)
120
121 def splitext(p):
--> 122 p = os.fspath(p)
123 if isinstance(p, bytes):
124 sep = b'/'
TypeError: expected str, bytes or os.PathLike object, not int Any help is appreciated.
... View more
02-07-2020
06:42 AM
|
0
|
0
|
2584
|
|
IDEA
|
So this all got pretty interesting when SalesForce purchased Tableau and then got even more interesting when SalesForce selected Esri as it’s “Key Geospatial Partner” - whatever that means. As far as I am concerned, while this is welcome news it is probably too little, too late. At scale, Insights is generally cheaper than Tableau if you have already investing in ArcGIS and to a large extent, better in my humble opinion. That pricing comparison is likely to change in though as SalesForce integrates Tableau deeper into its technology. For now, I think this is a great solution for organizations that have not yet invested heavily in ArcGIS, those that have very small GIS use cases or those that might have large investments in Tableau compared to ArcGIS. Kudos to Tableau (erm SalesForce?) for seeing the error of their ways though and thanks for posting the news Kent Marten
... View more
02-04-2020
11:33 AM
|
1
|
0
|
7016
|
|
IDEA
|
Definitely. I hate the how its not right there. Something like this would be perfect: If the other controls like 'Clear', 'Delete' and 'Copy' can be disabled based on state, so can a 'Save Edits' button. I shouldn't need to go back up to the ribbon, switch tabs and hunt around for the 'Save Edits' button. It should be right there in the attribute pane's toolbar.
... View more
02-03-2020
08:18 AM
|
2
|
0
|
2742
|
|
IDEA
|
There’s nothing stopping you as the owner of a content item from changing the ownership of your item to someone else. If you own the item, you don’t need the ‘Change Content Ownership’ privilege to set the owner of one of your items to another user in your org, so this just saves a step in that process. I can see how some orgs might not want that capability to be exposed though, so maybe it would need to be a capability exposed only to those with the ‘Change Content Ownership’ privilege.
... View more
01-18-2020
06:02 PM
|
0
|
1
|
771
|
|
IDEA
|
Sometimes I have to publish a dataset to our ArcGIS Enterprise deployment using ArcGIS Pro because they don't know how to do so, don't have ArcGIS Pro or more often, because it needs some kind of special capability that requires authoring in ArcGIS Pro, such as Subtypes. In these cases, it's a little inefficient for me to publish the data then go into our Portal and have to change the Owner to the user that asked me to publish it for them. It would be nice if I had the ability to set the owner during the publishing process from ArcGIS Pro. Something like this maybe?
... View more
01-16-2020
02:02 PM
|
3
|
3
|
850
|
|
IDEA
|
I definitely see the need for this. The Group-based access model certainly has some uses, but I also find myself constantly wanting to share with an individual or unique set of users, which means I'm constantly creating different groups with different user sets. Overtime, that becomes unsustainable. I think one way to get around this might be to have an additional option to create a group for each user, naming that group after the user - let's call this a "Named User Group". Then, you could share just with one or many individual users by sharing your content with the specific named user groups without having to create yet another group, and simultaneouslyyou could also share with groups of users in the traditional sense. This is technically already possible with the Python API and with Webhooks being introduced at 10.7, you could automagically create the group when the user is onboard as well. However, I'd be hesitant to do this without some insight from Esri as I'd not want to cause performance issues due to having a huge number of groups (1 per user + all of the adhoc groups). Philip Heede or Kelly Gerrow - could either of you shed some light on whether or not this might be a problematic workaround?
... View more
12-18-2019
02:08 PM
|
0
|
0
|
1339
|
|
IDEA
|
I'm no fan either, specifically of them using Group thumbnails for the icons. What a fantastic and efficient way to quickly decimate the design language that Esri's Calcite Team has worked so hard on developing and evolving for the last several years.
... View more
12-18-2019
06:42 AM
|
0
|
0
|
388
|
|
IDEA
|
I can’t speak for the others but for me, the answer is “cool, but nope, this is not what I wanted.” I want clustering in the Map Viewer in Portal to be enhanced. My problem with the current clustering in the Map Viewer is pretty simplistic. It doesn’t support displaying the count of how many features a given cluster represents. It’s just graduated symbols. Which is fine, but it needs to add the capability to also be able to display the number of features the given cluster represents and not leave that up to visual interpretation all the time. Personally, I hate map legends and I judge the usefulness and intuitiveness of a map by the size of a legend. I dont want to look at a legend to figure out what something means. With really complex maps that have a lot of information, sometimes they are a necessary evil but I always strive to reduce the size of my legend by making symbology intuitive so that it doesn’t need to be put in a legend. Point symbology, imho, should almost never be in a legend. We can make symbology that makes obvious sense. The green tree is a park. The shopping bag or even better, individual retail or logo is a store. Fire Dept. logo is a fire station. The graduated circle with 24 inside of it represents 24 items in the general vicinity of that point. Rene Rubalcava’s cluster-js repo on github is the EXACTLY what I’d want in clustering. That small touch makes it a billion times better. The amazing Carsten Piepel also wrote an SOE which is similar, but of course SOE’s have the drawback of only working on traditional services, not hosted services (womp, womp). Maybe Kelly Gerrow and team will be able to get this functionality into the new Map Viewer since it will be built off of JS4? Or maybe it’s not a Map Viewer limitation at all and Philip Heede would need to prioritize it for the Hosted Feature Service spec. Hard - that dude’s got a lot going on. Really looking forward to ArcGIS for Docker - make sure there’s support for Kubernetes too Philip Heede! Pretty please! I’ll buy you a beer, multiple beers! Idk what the deal is with it, but feature binning - while admittedly cool, valuable and a worthwhile investment of dev time - is not what I was asking for. Thanks for the mention though!
... View more
11-14-2019
02:21 PM
|
0
|
1
|
2640
|
|
IDEA
|
This might be a more elegant solution: https://community.esri.com/ideas/2635
... View more
08-15-2019
08:38 AM
|
1
|
0
|
1346
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-23-2021 07:28 AM | |
| 1 | 05-29-2018 04:52 PM | |
| 1 | 08-18-2022 10:22 AM | |
| 2 | 08-20-2021 09:29 AM | |
| 2 | 02-19-2020 11:08 AM |
| Online Status |
Offline
|
| Date Last Visited |
05-19-2023
08:06 PM
|