7 votos

Qué característica tiene mayor valor dentro de la extensión

Tengo una capa en la que necesito averiguar el valor máximo de un campo determinado dentro de la extensión actual del mapa, y luego devolver el valor de un campo diferente.

Por ejemplo, encontrar el estado con mayor población dentro de la extensión actual, y devolver el nombre del estado.

Se trata de un servicio alojado en ArcGIS Online, por lo que pensé que la forma correcta de hacerlo era hacer uso de outStatistics para determinar el valor máximo de mi campo utilizando la propiedad max. Sin embargo, aunque especifique que outFields incluya el campo sobre el que necesito informar, todo lo que obtengo es el resultado de outStatistics.

Por ejemplo, véase esta solicitud GET .

Out Fields: POP2007,STATE_NAME,NAME
Extent: <an extent object>
Output Statistics: [{"statisticType":"max","onStatisticField":"POP2007","outStatisticFieldName":"maxPop"}]

Result:  maxPop: 1483460

Respuesta deseada:

Result:  maxPop: 1483460, POP2007: 1483460, STATE_NAME: Middlesex

¿Cuál es la forma más eficiente/elegante de calcular el valor máximo de un campo dentro de la extensión actual, encontrar ese registro y devolver un valor de un campo diferente?

En el ejemplo anterior, podemos olvidarnos de la extensión, sólo quiero que devuelva el nombre del Estado que tenga el máximo valor de población. Por favor, no tenga en cuenta el hecho de que los condados están involucrados.

20voto

user21012 Puntos 21

La sintaxis puede variar de una base de datos subyacente a otra, pero se necesita algo así:

WHERE > FIELDNAME=(SELECT MAX(FIELDNAME) FROM TABLENAME)

en esencia "devuélveme la característica con un valor igual al valor más alto para ese campo en particular

http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3/query?where=POP2007%3D%28SELECT+MAX%28POP2007%29+FROM+states%29...

se puede utilizar junto con un operador espacial.

0voto

Dan Goldstein Puntos 8940

EDITAR

Creo que la mejor manera de conseguir los resultados deseados será procesar los datos de la devolución del GET, en lugar de utilizar el AGS para calcular su valor máximo.

Ver esto JSFIDDLE mediante una petición GET.

Calcular el valor máximo de POP2007 a partir de sus resultados basados en la extensión de entrada parece ser el enfoque más limpio.

Si todavía quiere utilizar el outStatistics, tendría que consultar donde POP2007 = valor maxPop, dentro de su extensión, esencialmente dos peticiones GET.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X