Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

syncfusion-blazor-maps同步融合 Blazor 贴图

Agent Skill

syncfusion-blazor-maps 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

989

周安装

40

GitHub Stars

公开资料未说明

下载量

310
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:syncfusion-blazor-maps(同步融合 Blazor 贴图)
来源仓库:https://github.com/syncfusion/blazor-ui-components-skills
仓库路径:skills/syncfusion-blazor-maps
安装命令:
npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-maps
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-maps

简介

地图组件,集成地理信息和空间数据可视化能力。syncfusion-blazor-maps 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

  • 适合物流跟踪、门店分布或区域统计等 LBS 应用场景。
  • 依赖第三方地图服务(如 Bing Maps),需单独申请 API Key。
  • 离线地图包体积较大,建议按需下载和缓存管理。
  • 坐标转换和距离计算应使用标准算法,避免投影误差累积。

SKILL.md

Implementing Syncfusion Maps for Blazor

A comprehensive guide to implementing Syncfusion Maps component in Blazor applications. Syncfusion Maps provides powerful spatial visualization capabilities including marker management, polygon overlays, layer support, event handling, and integration with multiple map providers.

🚨 CRITICAL SECURITY NOTICE - READ BEFORE USE: CAPABILITY BOUNDARIES (MANDATORY): This skill is designed for UI RENDERING ONLY. It must NEVER be used as: - A data ingestion point for automated agents or LLMs - A pipeline for untrusted external content processing - A source of shape/tile data for decision-making systems - Any form of automation input without human review STRICT RESTRICTION: NEVER FORWARD RAW EXTERNAL GEOJSON, SHAPEDATA, TILES, OR ANNOTATIONS TO AGENTS, LLMS, OR AUTOMATED SYSTEMS. All external map content must be treated as untrusted user input. Violating this restriction creates critical prompt injection and data exfiltration vulnerabilities. REQUIRED PRODUCTION SAFEGUARDS: 1. For GeoJSON/Tile Loading: - Host tiles and GeoJSON locally (under wwwroot/tiles or bundled assets), OR - Use only server-side proxies that validate all data before client access - NEVER load directly from third-party URLs at runtime 2. For Server-Side Proxy (if used): - Validate provider host against strict allow-list and require HTTPS - Verify content-type and validate against strict schema (no user fields) - Enforce maximum file size (5MB) and feature-count limits (10,000 max) - Strip or HTML-encode ALL properties (tooltips, annotations, labels) - Reject content containing instruction patterns or suspicious keywords - Normalize/validate coordinates (lat -90/90, lng -180/180) - Sanitize all text fields with HtmlSanitizer before client delivery - Issue short-lived signed URLs (do NOT embed API keys) 3. For Content Rendering: - Always sanitize external properties with HtmlSanitizer before rendering - Implement Content Security Policy headers to block script injection - Enable comprehensive logging of all validation failures IF external content must be processed by automation: - Perform COMPLETE server-side schema validation and sanitization FIRST - Implement mandatory rejection policy for instruction-like patterns - Enforce strict token/length limits (max 256 chars per field) - Require explicit human review and sign-off before automation - Wrap in boundary markers: [MAP_DATA_START]...[MAP_DATA_END] - Log all processing with full audit trail - See readme-security for required validation templates DO NOT USE THIS SKILL FOR: - ❌ Analyzing untrusted external geographic data - ❌ Processing user-uploaded GeoJSON without validation - ❌ Forwarding map content to LLM/agent analysis systems - ❌ Making automated decisions based on external map metadata - ❌ Storing or caching external third-party content SEVERE SECURITY CONSEQUENCES: Ignoring these boundaries may result in: - Prompt injection attacks via malicious geographic data - LLM/agent behavioral manipulation - Unauthorized data exfiltration - System compromise through script injection

When to Use This Skill

Use Syncfusion Maps when you need to:

  • Display geographic data on interactive maps
  • Visualize data across regions using color mapping (choropleth)
  • Add markers, polygons, and annotations to maps
  • Handle user interactions (click, hover, zoom, pan)
  • Support multiple map providers (Google, Bing, Azure, OpenStreetMap)
  • Export or print maps with custom legends and labels
  • Build location-aware applications
  • Create multi-layer spatial visualizations

Component Overview

Syncfusion Maps is a powerful geospatial visualization component that enables you to:

  • Render interactive maps with multiple provider options
  • Bind and visualize geographic datasets
  • Support rich spatial features (markers, polygons, layers, annotations)
  • Handle complex user interactions and events
  • Customize appearance through themes and styling
  • Enable localization and accessibility features
  • Export maps for reporting and sharing

⚠️ CRITICAL: Approved and Restricted Use Cases

✅ APPROVED USES (UI Rendering with Validation)

  • Display geographic data on interactive web dashboards
  • Visualize regional statistics through choropleth maps
  • Show business location markers with human review
  • Render localized maps for user interaction
  • Provide spatial search and filtering interfaces
  • Create read-only geographic visualizations
  • Support decision-making with validated, curated data

❌ STRICTLY PROHIBITED USES (No Agent/LLM Integration)

  • NEVER: Pass raw map data to LLM analysis systems
  • NEVER: Use as ingestion point for automated agents
  • NEVER: Forward external GeoJSON to decision-making systems
  • NEVER: Process untrusted third-party geographic data through automation
  • NEVER: Use annotations/tooltips as LLM input without human review
  • NEVER: Create automated geographic data pipelines
  • NEVER: Integrate with AI systems that analyze map metadata

🚫 THIRD-PARTY CONTENT INGESTION BOUNDARY

External Sources Referenced in This Skill:

  • tile.openstreetmap.org - OpenStreetMap provider
  • cdn.syncfusion.com - Syncfusion component resources
  • maps.googleapis.com - Google Maps provider
  • dev.virtualearth.net - Bing Maps provider
  • atlas.microsoft.com - Azure Maps provider

IMPORTANT: These third-party providers are ingested for UI rendering only. None of this content should ever reach automated systems. If you need to process geographic data through automation:

  1. ❌ DO NOT use this skill's external bindings
  2. ✅ DO create a separate server-side validation pipeline
  3. ✅ DO sanitize and validate all external content first
  4. ✅ DO require explicit human approval before automation
  5. ✅ DO implement comprehensive audit logging

Security Considerations

CRITICAL: This skill involves several security-sensitive operations. Review and implement these safeguards:

1. API Key Management

  • Risk: Hardcoded API keys in source code can be exposed in version control
  • Mitigation: Store keys in configuration files, user secrets, or secret management services
  • Reference: Map Providers - Security Best Practices

2. HTML Content Injection

  • Risk: Tooltips, annotations, and popups can render arbitrary HTML from external data sources
  • Attack Vectors: XSS attacks, prompt injection through malicious geographic data
  • Mitigation: Sanitize all external content using HtmlSanitizer library, HTML-encode user input
  • Reference: User Interactions - Sanitizing External Content

3. External Data Sources

4. Data Export Operations

  • Risk: Exporting maps to PNG/SVG/PDF may include sensitive geographic data
  • Mitigation: Implement access controls, audit export operations, sanitize export content
  • Reference: Print and Export

5. Prompt Injection Prevention & Agent/LLM Boundary

  • CRITICAL RISK: Shape data, annotations, tooltips, and other external map metadata can include text resembling instructions. This skill ingests third-party content (tile providers, GeoJSON sources) that can be weaponized for prompt injection if forwarded to automated agents or LLMs without explicit human review.
  • Attack Surface: External content enters via:

- MapsLayer UrlTemplate (tile providers) - ShapeData and DataSource properties (GeoJSON) - Tooltip and annotation properties - Any data binding from external sources

  • MANDATORY BOUNDARY: This skill must NEVER be the source of data for:

- LLM analysis or summarization - Automated agent decision-making - AI-powered geographic analysis - Machine learning training pipelines - Any system that processes map data through AI/ML without human intervention

  • If external content must reach automation:

- Apply server-side validation BEFORE any client rendering: schema checks (strict GeoJSON validation), domain allow‑list verification - Sanitize ALL properties with HtmlSanitizer and remove HTML/script tags - Implement mandatory rejection policy for instruction-like keywords ("system:", "ignore", "bypass", "execute", "[SYSTEM]", etc.) - Enforce strict length limits (max 256 chars per property, max 5000 chars total) - Wrap data in boundary markers: [MAP_DATA_START]...[MAP_DATA_END] - Require explicit human review and sign-off before forwarding to any AI system - Maintain comprehensive audit log of all AI system accesses

  • Mitigation Architecture:

- Layer 1: UI-rendering-only designation (no agent/LLM use) - Layer 2: Pattern detection (suspicious keyword detection) - Layer 3: Immediate rejection (no alternative parsing) - Layer 4: HTML sanitization (whitelist approach) - Layer 5: Strict validation pipeline (schema, size, coordinates) - Layer 6: Boundary markers & audit logging (for unavoidable automation)


Security Issue Resolutions

This skill has been hardened against the following identified security warnings:

[CREDENTIALS_UNSAFE] Hardcoded API Keys

Status: ✅ RESOLVED

Finding: Google Maps API key was shown hardcoded in example code.

Fix Implemented:

  • Removed all hardcoded API keys from examples
  • Updated all provider configuration examples to load keys from IConfiguration
  • Added comprehensive API key management guide showing environment variables, user secrets, and Azure Key Vault integration
  • All examples now use Configuration["MapProviders:GoogleKey"] pattern

Action Required: Never hardcode API keys. Load from configuration, environment variables, or secrets manager.

Reference: map-providers.md#managing-api-keys-securely

[EXTERNAL_DOWNLOADS] External Tile and Data Downloads

Status: ✅ DOCUMENTED AS EXPECTED BEHAVIOR

Finding: Skill downloads map tiles from tile.openstreetmap.org, cdn.syncfusion.com, and maps.googleapis.com.

Explanation: These downloads are expected and necessary for map visualization. Map tiles MUST come from a tile provider. This is normal behavior, not a vulnerability.

Best Practices:

  • Use local tile caching in production environments
  • Implement a server-side proxy to validate tile URLs
  • Enforce HTTPS for all tile requests
  • Configure domain allow-lists

Reference: map-providers.md#external-asset-downloads-expected-behavior

[COMMAND_EXECUTION] IJSRuntime Browser API Usage

Status: ✅ RESOLVED WITH SAFEGUARDS

Finding: Skill uses IJSRuntime for localStorage access and dynamic CSS/script injection.

Safeguards Implemented:

  • Never allow user-controlled or external data in JavaScript interop
  • All CSS theme URLs must come from allow-listed set of known themes
  • No dynamic script loading from untrusted sources
  • Input validation required before any JS invocation
  • Content Security Policy headers block unauthorized script execution

Secure Pattern:

// SAFE: Only pre-defined themes allowed
private readonly Dictionary<string, string> AllowedThemes = new()
{
    { "bootstrap5", "_content/Syncfusion.Blazor/styles/bootstrap5.css" },
    { "material", "_content/Syncfusion.Blazor/styles/material.css" }
};

private async Task SwitchThemeSafely(string themeName)
{
    if (!AllowedThemes.ContainsKey(themeName))
        throw new SecurityException($"Theme not allowed");
    await JS.InvokeVoidAsync("loadThemeSafely", AllowedThemes[themeName]);
}

Reference: state-persistence.md | customization-and-styling.md

[PROMPT_INJECTION] Untrusted Data to Automated Agents

Status: ✅ RESOLVED WITH COMPREHENSIVE CONTROLS

Finding: GeoJSON and map metadata can include text resembling instructions, risking prompt injection if passed to LLMs/agents without sanitization.

Multi-Layer Mitigation Implemented:

  1. Capability Boundaries: Skill designated for UI rendering ONLY

- Explicit prohibition on passing raw data to LLMs/agents - All external content treated as untrusted

  1. Pattern Detection: Implemented instruction pattern detection

- Detects: "system:", "ignore", "bypass", "execute", "[SYSTEM]", etc. - Immediate rejection on suspicious content

  1. Sanitization: All HTML content sanitized before rendering

- HtmlSanitizer library removes scripts and unsafe tags - HTML encoding applied to external properties - No raw HTML from external sources

  1. Validation Pipeline: Comprehensive GeoJSON validation

- Schema validation (FeatureCollection structure) - Size limits (5MB max, 10,000 features max) - Property validation (50 max, 1000 chars each) - Coordinate range validation (-90/90 lat, -180/180 lng)

  1. Boundary Markers: If automation required

- Use [MAP_DATA_START]... [MAP_DATA_END] delimiters - Strict length limits (256 chars per property, 5000 total) - Rejection policy on validation failure

  1. Logging & Audit: Comprehensive security logging

- All validation failures logged - Suspicious patterns logged with context - Human review required before any automation

Production Checklist:

  • No hardcoded API keys
  • GeoJSON from local files or validated provider
  • HTTPS enforced for external requests
  • HtmlSanitizer installed and configured
  • Content Security Policy headers set
  • Pattern rejection policy implemented
  • Comprehensive logging enabled
  • API keys in secrets manager
  • Security review completed

Reference: readme-security.md | user-interactions.md#preventing-prompt-injection | data-visualization.md#validating-external-geojson-data


Documentation and Navigation Guide

Choose the reference guide that matches your current task:

Getting Started

📄 Read: references/getting-started.md

  • Installation and NuGet package setup
  • Basic map initialization and rendering
  • CSS imports and theme configuration
  • Creating your first interactive map
  • Step-by-step setup walkthrough

Map Providers and Configuration

📄 Read: references/map-providers.md

  • Google Maps setup and API key configuration
  • Bing Maps setup and authentication
  • Azure Maps provider configuration
  • OpenStreetMap setup
  • Provider comparison and selection guide

Markers and Layers

📄 Read: references/markers-and-layers.md

  • Adding and managing markers
  • Marker clustering and grouping
  • Working with layers and layer collections
  • Toggling layer visibility
  • Dynamic marker updates and data binding

Spatial Features and Overlays

📄 Read: references/spatial-features.md

  • Drawing polygons and geographic shapes
  • Creating navigation lines and polylines
  • Adding annotations with text, icons, and circles
  • Creating data bubbles and interactive overlays
  • Advanced spatial geometry features

Data Visualization and Mapping

📄 Read: references/data-visualization.md

  • Color mapping and choropleth visualization
  • Configuring legends and legend placement
  • Data labels on map elements
  • Populating maps with geographic datasets
  • Advanced data binding and visualization patterns

User Interactions

📄 Read: references/user-interactions.md

  • Handling mouse clicks and double-clicks
  • Zoom and pan control configuration
  • Tooltip and popup behavior
  • Keyboard navigation support
  • Custom interaction patterns

Events and Methods

📄 Read: references/events-and-methods.md

  • Mouse event handling (click, hover, move)
  • Pan and zoom event capture
  • Programmatic map methods (pan, zoom, reset, refresh)
  • Event data and callback patterns
  • Triggering actions from user interactions

Customization and Styling

📄 Read: references/customization-and-styling.md

  • CSS class customization
  • Theme Studio integration
  • Marker and popup styling
  • Map controls and navigation styling
  • Dark mode and responsive design

Print and Export

📄 Read: references/print-and-export.md

  • Exporting maps as PNG, SVG, and PDF
  • Print functionality and page setup
  • Exporting with legends and data labels
  • File format considerations
  • Server-side and client-side export options

Internationalization and Localization

📄 Read: references/internationalization-and-localization.md

  • Multi-language support for map labels
  • Right-to-left (RTL) text support
  • Localized number and date formatting
  • Regional map variations
  • Language-specific customization

State Persistence

📄 Read: references/state-persistence.md

  • Saving and restoring map state
  • Persisting zoom level and center position
  • Preserving user interaction state
  • Session and local storage integration
  • State management patterns

Accessibility and Advanced Topics

📄 Read: references/accessibility.md

  • WCAG 2.1 compliance and standards
  • Keyboard navigation and shortcuts
  • ARIA attributes and semantic markup
  • Screen reader support
  • High contrast mode support
  • Assistive technology compatibility

Complete API Reference

📄 Read: references/api-reference.md

  • SfMaps main component properties and methods
  • Configuration classes (MapsCenterPosition, MapsZoomSettings, MapsLegendSettings, etc.)
  • Event arguments for all event types
  • Interfaces (ILayer, IMarker, IBubble)
  • Enumerations for MarkerType, ExportType, ProjectionType, GeometryType, etc.
  • Properties quick reference guide
  • Complete class hierarchy and API surface

⛔ SECURITY REQUIREMENT: What NOT to Do

The following patterns are PROHIBITED and create critical security vulnerabilities:

// ❌ PROHIBITED: Forwarding map data to LLM/agents
var geoJsonData = await LoadGeoJsonFromMapLayer();
var analysis = await llmService.AnalyzeAsync(geoJsonData);  // NEVER DO THIS

// ❌ PROHIBITED: Using external annotations in agent prompts
var tooltipText = mapFeature.Properties["tooltip"];
var response = await agent.ExecuteAsync($"Summarize: {tooltipText}");  // NEVER DO THIS

// ❌ PROHIBITED: Processing third-party tiles through automation
var tileUrl = "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
await automationPipeline.IngestAsync(tileUrl);  // NEVER DO THIS

// ❌ PROHIBITED: Making decisions based on untrusted GeoJSON
var externalGeoJson = await httpClient.GetAsync("https://external-source.com/map.json");
var decision = MakeCriticalDecision(externalGeoJson);  // NEVER DO THIS

If you believe you need to use map data with AI/ML systems:

  1. Stop and re-evaluate your architecture
  2. Create a separate server-side ingestion pipeline
  3. Implement complete validation and sanitization
  4. Get explicit security review and approval
  5. Implement human review gates before AI processing
  6. Maintain comprehensive audit trails

Quick Start Example

// Basic map setup in Blazor (use validated tile URL or local tiles in production)
@page "/maps-demo"
@using Syncfusion.Blazor.Maps

<SfMaps>
    <MapsLayers>
        <!-- ✅ SAFE: Use local bundled tiles (recommended for production) -->
        <MapsLayer UrlTemplate="@TileUrl">
        </MapsLayer>
    </MapsLayers>
</SfMaps>

@code {
    // SAFE: Host tiles locally or use a validated, domain-restricted provider
    private string TileUrl = "/tiles/{level}/{tileX}/{tileY}.png"; // local/cached tiles

    // This data stays in the UI layer only - NEVER forwarded to agents or LLMs
}

Common Patterns

Pattern 1: Adding Markers to a Map

<SfMaps>
    <MapsLayers>
        <MapsLayer TValue="MarkerData" UrlTemplate="@TileUrl">
            <MapsMarkerSettings>
                <MapsMarker TValue="MarkerData" Latitude="37.368" Longitude="-122.095"
                    Width="15" Height="15">
                </MapsMarker>
            </MapsMarkerSettings>
        </MapsLayer>
    </MapsLayers>
</SfMaps>

@code {
    public class MarkerData
    {
        public double Latitude { get; set; }
        public double Longitude { get; set; }
    }
}

Pattern 2: Binding Data with Color Mapping

<SfMaps>
    <MapsLayers>
        <MapsLayer ShapeDataSource="@ShapeData"
                   ShapePropertyPath="@ShapePropertyPath"
                   DataSource="@DataSource" TValue="DataType">
            <MapsShapeSettings ColorValuePath="Population">
                <MapsShapeColorMappings>
                    <MapsShapeColorMapping From="0" To="50000" Color="#B3E5FC"></MapsShapeColorMapping>
                    <MapsShapeColorMapping From="50000" To="100000" Color="#81D4FA"></MapsShapeColorMapping>
                </MapsShapeColorMappings>
            </MapsShapeSettings>
        </MapsLayer>
    </MapsLayers>
</SfMaps>

Pattern 3: Handling Map Click Events

<SfMaps @ref="mapInstance" OnShapeSelected="ShapeSelected"
        OnMarkerClick="MarkerClicked">
    <MapsLayers>
        <MapsLayer UrlTemplate="@TileUrl">
        </MapsLayer>
    </MapsLayers>
</SfMaps>

@code {
    private SfMaps mapInstance;

    private void MarkerClicked(MarkerClickEventArgs args)
    {
        Console.WriteLine($"Marker clicked at: {args.Latitude}, {args.Longitude}");
    }

    private void ShapeSelected(ShapeSelectedEventArgs args)
    {
        Console.WriteLine($"Shape selected: {args.Data}");
    }
}

Key Features Summary

  • Multiple Map Providers: Support for Google Maps, Bing Maps, Azure Maps, and OpenStreetMap
  • Rich Geospatial Features: Markers, polygons, polylines, annotations, and bubbles
  • Data Visualization: Color mapping, choropleth support, legends, and data labels
  • Interactivity: Click handling, hover tooltips, zoom/pan controls, keyboard navigation
  • Layer Management: Multi-layer support with visibility toggling and dynamic updates
  • Export Capabilities: PNG, SVG, and PDF export with legends and labels
  • Internationalization: Multi-language support and RTL text rendering
  • Accessibility: WCAG compliance with keyboard navigation and screen reader support
  • Customization: Theme Studio integration, CSS customization, marker styling
  • Performance: Optimized rendering for large datasets and marker clustering

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

35.85%
按下载量换算111

Claude

28.94%
按下载量换算90

Cursor

17.86%
按下载量换算55

Gemini CLI

9.28%
按下载量换算29

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills