2 votos

Uso de servicios GeoJSON en Arcade Expression

Estoy intentando utilizar una expresión Arcade con servicios GeoJSON en un mapa utilizando la API Javascript de ArcGIS. La intención de la expresión Arcade es devolver un recuento de los lagos que se cruzan con un condado en el que el usuario hace clic. Tanto los lagos como los polígonos de condado son servicios GeoJSON. Al cambiar el servicio GeoJSON de los lagos por un servicio de capa de características de ArcGIS, la expresión funciona correctamente y devuelve el recuento de lagos que se cruzan con el servicio GeoJSON del condado.

  var template = {
  title: "{LABEL}",
  content: "{expression/countyInfo}",
  expressionInfos: [
  {
    name: "countyInfo",
    title: "Marker Info",
    expression: `

    var lake = FeatureSetByName($map, 'Lakes');

    var lakeIntersect = Intersects(lake, $feature);

    var cnt = Count(lakeIntersect);

    return \` 
    Number of lakes: \${Text(cnt, "####")}   
    \`
    `
  }
  ]
};

He probado a cambiar el $map global variable in the FeatureSetByName function to the other global variables options ($ almacén de datos, $feature, $ capa) pero no he tenido suerte.

¿Alguien ha tenido éxito creando un FeatureSet a partir de un servicio GeoJSON, cómo lo ha declarado?

EDITAR

Código aquí

0voto

ellisbben Puntos 3213

Ahora puedes resolver este problema con una función en arcade llamada Intersects(). A pesar de que sus capas de origen provienen de un GEOJSON, son capas referenciadas en el mapa. Puede utilizar las funciones FeatureSet como parámetros de entrada a la función Intersect para identificar los lagos que se cruzan en el condado. Por ejemplo

Count(Intersects(FeatureSetByName($map,'Lakes', ['*'], true), FeatureSetByName($map,'County', ['*'], true)))

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