Token导航 LogoToken导航TokenDH.com
前端设计权限需确认github未标认证来源可访问clear审计通过

arcgis-smart-mappingarcgis 智能制图

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

899

周安装

36

GitHub Stars

13

下载量

291
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:arcgis-smart-mapping(arcgis 智能制图)
来源仓库:https://github.com/saschabrunnerch/arcgis-maps-sdk-js-ai-context
仓库路径:skills/arcgis-smart-mapping
安装命令:
npx skills add https://github.com/saschabrunnerch/arcgis-maps-sdk-js-ai-context --skill arcgis-smart-mapping
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/saschabrunnerch/arcgis-maps-sdk-js-ai-context --skill arcgis-smart-mapping

简介

用于自动生成智能制图渲染器,适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

  • 基于数据计算统计并创建可视化方案。
  • 适合快速生成颜色、尺寸、类型渲染器及直方图分析。
  • 使用时需提供数据样本以驱动自动映射逻辑, 避免脱离实际字段。arcgis-smart-mapping 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

ArcGIS Smart Mapping

Use this skill to auto-generate renderers based on data, calculate statistics, and create intelligent visualizations.

Import Patterns

Direct ESM Imports

import * as colorRendererCreator from "@arcgis/core/smartMapping/renderers/color.js";
import * as sizeRendererCreator from "@arcgis/core/smartMapping/renderers/size.js";
import * as typeRendererCreator from "@arcgis/core/smartMapping/renderers/type.js";
import summaryStatistics from "@arcgis/core/smartMapping/statistics/summaryStatistics.js";
import histogram from "@arcgis/core/smartMapping/statistics/histogram.js";

CDN Dynamic Imports

const colorRendererCreator = await $arcgis.import(
  "@arcgis/core/smartMapping/renderers/color.js",
);
const summaryStatistics = await $arcgis.import(
  "@arcgis/core/smartMapping/statistics/summaryStatistics.js",
);
Note: Examples below use Direct ESM imports. For CDN usage, replace import X from "path" with const X = await $arcgis.import("path").

Smart Mapping Module Overview

ModuleImport PathPurpose
renderers/color@arcgis/core/smartMapping/renderers/color.jsColor-based renderers
renderers/size@arcgis/core/smartMapping/renderers/size.jsSize-based renderers
renderers/type@arcgis/core/smartMapping/renderers/type.jsUnique value renderers
renderers/heatmap@arcgis/core/smartMapping/renderers/heatmap.jsHeatmap renderers
renderers/dotDensity@arcgis/core/smartMapping/renderers/dotDensity.jsDot density renderers
renderers/opacity@arcgis/core/smartMapping/renderers/opacity.jsOpacity renderers
renderers/relationship@arcgis/core/smartMapping/renderers/relationship.jsBivariate renderers
renderers/predominance@arcgis/core/smartMapping/renderers/predominance.jsPredominance renderers
renderers/pieChart@arcgis/core/smartMapping/renderers/pieChart.jsPie chart renderers
renderers/univariateColorSize@arcgis/core/smartMapping/renderers/univariateColorSize.jsCombined color+size
renderers/location@arcgis/core/smartMapping/renderers/location.jsSimple location renderers
statistics/classBreaks@arcgis/core/smartMapping/statistics/classBreaks.jsClass break values
statistics/histogram@arcgis/core/smartMapping/statistics/histogram.jsHistogram bins
statistics/summaryStatistics@arcgis/core/smartMapping/statistics/summaryStatistics.jsMin/max/avg/stddev
statistics/uniqueValues@arcgis/core/smartMapping/statistics/uniqueValues.jsUnique field values
statistics/predominantCategories@arcgis/core/smartMapping/statistics/predominantCategories.jsDominant categories
statistics/heatmapStatistics@arcgis/core/smartMapping/statistics/heatmapStatistics.jsHeatmap density stats
statistics/summaryStatisticsForAge@arcgis/core/smartMapping/statistics/summaryStatisticsForAge.jsAge from date fields
symbology/color@arcgis/core/smartMapping/symbology/color.jsColor schemes
symbology/support/colorRamps@arcgis/core/smartMapping/symbology/support/colorRamps.jsColor ramp library
heuristics/sizeRange@arcgis/core/smartMapping/heuristics/sizeRange.jsOptimal size range
heuristics/scaleRange@arcgis/core/smartMapping/heuristics/scaleRange.jsOptimal scale range
labels/clusters@arcgis/core/smartMapping/labels/clusters.jsCluster labels
labels/bins@arcgis/core/smartMapping/labels/bins.jsBin labels
popup/clusters@arcgis/core/smartMapping/popup/clusters.jsCluster popups
popup/templates@arcgis/core/smartMapping/popup/templates.jsPopup templates

Renderer Creators

Color Renderer (Continuous)

Creates a renderer with color gradient based on numeric values.

import * as colorRendererCreator from "@arcgis/core/smartMapping/renderers/color.js";

const { renderer, visualVariable, colorScheme } =
  await colorRendererCreator.createContinuousRenderer({
    layer: featureLayer,
    view: view,
    field: "population",
    theme: "high-to-low", // high-to-low, above, below, centered-on, extremes
  });

featureLayer.renderer = renderer;

Color Renderer (Class Breaks)

Creates a renderer with distinct color classes.

const { renderer, classBreakInfos } =
  await colorRendererCreator.createClassBreaksRenderer({
    layer: featureLayer,
    view: view,
    field: "income",
    classificationMethod: "natural-breaks", // equal-interval, quantile, standard-deviation
    numClasses: 5,
    colorScheme: {
      id: "esri-orange-9",
    },
  });

featureLayer.renderer = renderer;

Size Renderer (Continuous)

import * as sizeRendererCreator from "@arcgis/core/smartMapping/renderers/size.js";

const { renderer, visualVariable } =
  await sizeRendererCreator.createContinuousRenderer({
    layer: featureLayer,
    view: view,
    field: "magnitude",
  });

featureLayer.renderer = renderer;

Size Renderer (Class Breaks)

const { renderer } = await sizeRendererCreator.createClassBreaksRenderer({
  layer: featureLayer,
  view: view,
  field: "sales",
  classificationMethod: "quantile",
  numClasses: 4,
});

Type (Unique Values) Renderer

import * as typeRendererCreator from "@arcgis/core/smartMapping/renderers/type.js";

const { renderer, uniqueValueInfos } = await typeRendererCreator.createRenderer(
  {
    layer: featureLayer,
    view: view,
    field: "landuse",
    numTypes: 10, // Maximum categories before "Other"
    sortBy: "count", // value, count
  },
);

featureLayer.renderer = renderer;

Heatmap Renderer

import * as heatmapRendererCreator from "@arcgis/core/smartMapping/renderers/heatmap.js";

const { renderer } = await heatmapRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  field: "magnitude", // Optional: weight by field
  radius: 18,
  minDensity: 0,
  maxDensity: 0.05,
});

featureLayer.renderer = renderer;

Dot Density Renderer

import * as dotDensityRendererCreator from "@arcgis/core/smartMapping/renderers/dotDensity.js";

const { renderer } = await dotDensityRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  attributes: [
    { field: "dem_votes", color: "blue", label: "Democrat" },
    { field: "rep_votes", color: "red", label: "Republican" },
  ],
  dotValue: 1000,
  dotBlendingEnabled: true,
});

featureLayer.renderer = renderer;

Relationship Renderer

Shows relationship between two variables in a bivariate map.

import * as relationshipRendererCreator from "@arcgis/core/smartMapping/renderers/relationship.js";

const { renderer } = await relationshipRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  field1: { field: "population" },
  field2: { field: "income" },
  numClasses: 3, // 2, 3, or 4
  focus: "HH", // HH, HL, LH, LL
});

Predominance Renderer

Shows which category has the highest value per feature.

import * as predominanceRendererCreator from "@arcgis/core/smartMapping/renderers/predominance.js";

const { renderer } = await predominanceRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  fields: [
    { name: "dem_votes", label: "Democrat" },
    { name: "rep_votes", label: "Republican" },
    { name: "ind_votes", label: "Independent" },
  ],
  includeSizeVariable: true,
  includeOpacityVariable: true,
});

Pie Chart Renderer

import * as pieChartRendererCreator from "@arcgis/core/smartMapping/renderers/pieChart.js";

const { renderer } = await pieChartRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  attributes: [
    { field: "asian", label: "Asian" },
    { field: "black", label: "Black" },
    { field: "white", label: "White" },
    { field: "other", label: "Other" },
  ],
  sizeOptimizationEnabled: true,
});

Univariate Color-Size Renderer

Combines color and size to emphasize a single variable.

import * as univariateRendererCreator from "@arcgis/core/smartMapping/renderers/univariateColorSize.js";

const { renderer } = await univariateRendererCreator.createContinuousRenderer({
  layer: featureLayer,
  view: view,
  field: "population",
  theme: "above-and-below",
});

Location Renderer

Simple location-based visualization (no data-driven styling).

import * as locationRendererCreator from "@arcgis/core/smartMapping/renderers/location.js";

const { renderer } = await locationRendererCreator.createRenderer({
  layer: featureLayer,
  view: view,
  color: [0, 112, 255],
});

Statistics Functions

Summary Statistics

import summaryStatistics from "@arcgis/core/smartMapping/statistics/summaryStatistics.js";

const result = await summaryStatistics({
  layer: featureLayer,
  field: "temperature",
});

console.log(result.avg); // Mean
console.log(result.count); // Feature count
console.log(result.max); // Maximum
console.log(result.min); // Minimum
console.log(result.stddev); // Standard deviation
console.log(result.sum); // Sum
console.log(result.variance); // Variance

Class Breaks

import classBreaks from "@arcgis/core/smartMapping/statistics/classBreaks.js";

const result = await classBreaks({
  layer: featureLayer,
  field: "population",
  classificationMethod: "natural-breaks", // equal-interval, quantile, standard-deviation
  numClasses: 5,
  normalizationField: "area", // Optional
});

console.log(result.classBreakInfos);
// [{ minValue: 0, maxValue: 1000, count: 50 }, ...]

Histogram

import histogram from "@arcgis/core/smartMapping/statistics/histogram.js";

const result = await histogram({
  layer: featureLayer,
  field: "income",
  numBins: 20,
  minValue: 0,
  maxValue: 200000,
});

console.log(result.bins);
// [{ minValue: 0, maxValue: 10000, count: 150 }, ...]

Unique Values

import uniqueValues from "@arcgis/core/smartMapping/statistics/uniqueValues.js";

const result = await uniqueValues({
  layer: featureLayer,
  field: "category",
});

console.log(result.uniqueValueInfos);
// [{ value: "Type A", count: 100 }, ...]

Summary Statistics for Age

import summaryStatisticsForAge from "@arcgis/core/smartMapping/statistics/summaryStatisticsForAge.js";

const result = await summaryStatisticsForAge({
  layer: featureLayer,
  field: "construction_date",
  unit: "years", // years, months, days, hours, minutes, seconds
});

console.log(result.avg); // Average age in years

Predominant Categories

import predominantCategories from "@arcgis/core/smartMapping/statistics/predominantCategories.js";

const result = await predominantCategories({
  layer: featureLayer,
  fields: ["typeA_count", "typeB_count", "typeC_count"],
});

console.log(result.predominantCategoryInfos);

Heatmap Statistics

import heatmapStatistics from "@arcgis/core/smartMapping/statistics/heatmapStatistics.js";

const result = await heatmapStatistics({
  layer: featureLayer,
  view: view,
  field: "magnitude",
});

console.log(result.maxDensity);
console.log(result.minDensity);

Symbology (Color Schemes)

Get Color Schemes

import * as symbologyColor from "@arcgis/core/smartMapping/symbology/color.js";

const schemes = symbologyColor.getSchemes({
  geometryType: "polygon",
  theme: "high-to-low",
});

console.log(schemes.primaryScheme); // Best match
console.log(schemes.secondarySchemes); // Alternatives

Color Scheme Themes

ThemeDescription
high-to-lowSequential (low to high values)
above-and-belowDiverging (center point)
centered-onCentered on specific value
extremesEmphasize high and low values

Get Color Ramps

import * as colorRamps from "@arcgis/core/smartMapping/symbology/support/colorRamps.js";

const allRamps = colorRamps.all();
const byName = colorRamps.byName("Green-Brown");

Heuristics

Size Range

import sizeRange from "@arcgis/core/smartMapping/heuristics/sizeRange.js";

const result = await sizeRange({
  layer: featureLayer,
  view: view,
  field: "population",
});

console.log(result.minSize); // Suggested minimum
console.log(result.maxSize); // Suggested maximum

Scale Range

import scaleRange from "@arcgis/core/smartMapping/heuristics/scaleRange.js";

const result = await scaleRange({
  layer: featureLayer,
  view: view,
});

console.log(result.minScale);
console.log(result.maxScale);

Cluster & Bin Labels

Cluster Labels

import * as clusterLabels from "@arcgis/core/smartMapping/labels/clusters.js";

const { labelingInfo } = await clusterLabels.getLabelSchemes({
  layer: featureLayer,
  view: view,
});

Bin Labels

import * as binLabels from "@arcgis/core/smartMapping/labels/bins.js";

const { labelingInfo } = await binLabels.getLabelSchemes({
  layer: featureLayer,
  view: view,
});

Raster Smart Mapping

Class Breaks Raster Renderer

import * as rasterClassBreaks from "@arcgis/core/smartMapping/raster/renderers/classBreaks.js";

const { renderer } = await rasterClassBreaks.createRenderer({
  layer: imageryLayer,
  view: view,
  classificationMethod: "natural-breaks",
  numClasses: 5,
});

imageryLayer.renderer = renderer;

Stretch Raster Renderer

import * as rasterStretch from "@arcgis/core/smartMapping/raster/renderers/stretch.js";

const { renderer } = await rasterStretch.createRenderer({
  layer: imageryLayer,
  view: view,
  stretchType: "standard-deviation", // min-max, standard-deviation, histogram-equalization
  numberOfStandardDeviations: 2,
});

RGB Raster Renderer

import * as rasterRGB from "@arcgis/core/smartMapping/raster/renderers/rgb.js";

const { renderer } = await rasterRGB.createRenderer({
  layer: imageryLayer,
  view: view,
  bandIds: [4, 3, 2], // NIR, Red, Green (false color)
});

Flow Renderer

import * as rasterFlow from "@arcgis/core/smartMapping/raster/renderers/flow.js";

const { renderer } = await rasterFlow.createRenderer({
  layer: imageryLayer,
  view: view,
});

Common Patterns

Complete Smart Mapping Workflow

// 1. Create renderer
const { renderer } = await colorRendererCreator.createContinuousRenderer({
  layer: featureLayer,
  view: view,
  field: "population",
});

// 2. Get histogram for slider widget
const histogramResult = await histogram({
  layer: featureLayer,
  field: "population",
  numBins: 50,
});

// 3. Apply renderer
featureLayer.renderer = renderer;

// 4. Create histogram range slider
const slider = new HistogramRangeSlider({
  bins: histogramResult.bins,
  min: histogramResult.minValue,
  max: histogramResult.maxValue,
  values: [histogramResult.minValue, histogramResult.maxValue],
});

Multi-Variable Visualization

// Color by one variable, size by another
const colorResult = await colorRendererCreator.createContinuousRenderer({
  layer: featureLayer,
  view: view,
  field: "income",
});

const sizeResult = await sizeRendererCreator.createVisualVariables({
  layer: featureLayer,
  view: view,
  field: "population",
});

colorResult.renderer.visualVariables.push(sizeResult.visualVariable);
featureLayer.renderer = colorResult.renderer;

Create Visual Variable Only

const { visualVariable } = await colorRendererCreator.createVisualVariable({
  layer: featureLayer,
  view: view,
  field: "temperature",
  theme: "high-to-low",
});

// Add to existing renderer
renderer.visualVariables = [visualVariable];

Reference Samples

  • visualization-sm-color - Smart mapping with color renderers
  • visualization-sm-size - Smart mapping with size renderers
  • visualization-sm-types - Smart mapping for unique value types
  • visualization-sm-relationship - Relationship smart mapping
  • visualization-sm-predominance - Predominance visualization
  • visualization-sm-dotdensity - Smart mapping dot density
  • visualization-sm-uni-colorsize - Univariate color-size
  • visualization-sm-multivariate - Multi-variable smart mapping
  • visualization-sm-classbreaks - Smart mapping class breaks
  • visualization-histogram-color - Histogram-driven color visualization

Common Pitfalls

  1. View required: Most smart mapping functions require a view parameter for scale-dependent calculations. // Anti-pattern: missing view const {renderer} = await colorRendererCreator.createContinuousRenderer({layer: featureLayer, field: "population",}); // Correct: include view const {renderer} = await colorRendererCreator.createContinuousRenderer({layer: featureLayer, view: view, field: "population",});
  2. Async operations: All smart mapping functions return promises. Always await results.
  3. Field type mismatch: Numeric fields for color/size continuous renderers. String/coded-value fields for type/unique value renderers.
  4. Layer must be loaded: The layer needs to be loaded and have the specified field. await featureLayer.load(); const {renderer} = await colorRendererCreator.createContinuousRenderer({...});
  5. Color scheme geometry: Color schemes are geometry-type specific. const schemes = symbologyColor.getSchemes({geometryType: featureLayer.geometryType, // point, polyline, polygon theme: "high-to-low",});

Related Skills

  • arcgis-visualization - Manual renderer and symbol configuration
  • arcgis-feature-effects - Visual effects and filters
  • arcgis-layers - Layer types and configuration
  • arcgis-core-maps - Map and view setup

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenCode

27.29%
按下载量换算79

trae

23.64%
按下载量换算69

Codex

20.83%
按下载量换算61

Claude Code

13.05%
按下载量换算38

Antigravity

9.05%
按下载量换算26

Gemini CLI

3.42%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills