[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71C7XJZX7CV35JRPNNR9SGS":3,"skill-same:01M71C7XJZX7CV35JRPNNR9SGS":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M71C7XJZX7CV35JRPNNR9SGS","azure-maps-search-dotnet",null,"Azure Maps SDK for .NET. Location-based services including geocoding, routing, rendering, geolocation, and weather. Use for address search, directions, map tiles, IP geolocation, and weather data. Triggers: \"Azure Maps\", \"MapsSearchClient\", \"MapsRoutingClient\", \"MapsRenderingClient\", \"geocoding .NET\", \"route directions\", \"map tiles\", \"geolocation\".","strmt7\u002Fai_skills_collection_benchmarked","strmt7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F28989754?v=4","01M71929P914SWKQ7QJV24NBBY","Stratos","01M71929Q9VGKQ7PWYR95VSQQQ",1,"MIT","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fgame-mobile-visual-qa\u002Fofficial-vendor-reference\u002Fazure-maps-search-dotnet\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"search","dotnet","maps","azure","azure maps search dotnet","azure maps","microsoft","sdk","services","routing","use","triggers","for","weather","data","rendering","route","directions","map","ip","2026-11-10 10:12:30",false,"---\nname: azure-maps-search-dotnet\ndescription: |\n  Azure Maps SDK for .NET. Location-based services including geocoding, routing, rendering, geolocation, and weather. Use for address search, directions, map tiles, IP geolocation, and weather data. Triggers: \"Azure Maps\", \"MapsSearchClient\", \"MapsRoutingClient\", \"MapsRenderingClient\", \"geocoding .NET\", \"route directions\", \"map tiles\", \"geolocation\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.Maps.Search\n---\n\n# Azure Maps (.NET)\n\nAzure Maps SDK for .NET providing location-based services: geocoding, routing, rendering, geolocation, and weather.\n\n## Installation\n\n```bash\n# Search (geocoding, reverse geocoding)\ndotnet add package Azure.Maps.Search --prerelease\n\n# Routing (directions, route matrix)\ndotnet add package Azure.Maps.Routing --prerelease\n\n# Rendering (map tiles, static images)\ndotnet add package Azure.Maps.Rendering --prerelease\n\n# Geolocation (IP to location)\ndotnet add package Azure.Maps.Geolocation --prerelease\n\n# Weather\ndotnet add package Azure.Maps.Weather --prerelease\n\n# Resource Management (account management, SAS tokens)\ndotnet add package Azure.ResourceManager.Maps --prerelease\n\n# Required for authentication\ndotnet add package Azure.Identity\n```\n\n**Current Versions**:\n- `Azure.Maps.Search`: v2.0.0-beta.5\n- `Azure.Maps.Routing`: v1.0.0-beta.4\n- `Azure.Maps.Rendering`: v2.0.0-beta.1\n- `Azure.Maps.Geolocation`: v1.0.0-beta.3\n- `Azure.ResourceManager.Maps`: v1.1.0-beta.2\n\n## Environment Variables\n\n```bash\nAZURE_MAPS_SUBSCRIPTION_KEY=\u003Cyour-subscription-key>\nAZURE_MAPS_CLIENT_ID=\u003Cyour-client-id>  # For Entra ID auth\n```\n\n## Authentication\n\n### Subscription Key (Shared Key)\n\n```csharp\nusing Azure;\nusing Azure.Maps.Search;\n\nvar subscriptionKey = Environment.GetEnvironmentVariable(\"AZURE_MAPS_SUBSCRIPTION_KEY\");\nvar credential = new AzureKeyCredential(subscriptionKey);\n\nvar client = new MapsSearchClient(credential);\n```\n\n### Microsoft Entra ID (Recommended for Production)\n\n```csharp\nusing Azure.Identity;\nusing Azure.Maps.Search;\n\nvar credential = new DefaultAzureCredential();\nvar clientId = Environment.GetEnvironmentVariable(\"AZURE_MAPS_CLIENT_ID\");\n\nvar client = new MapsSearchClient(credential, clientId);\n```\n\n### Shared Access Signature (SAS)\n\n```csharp\nusing Azure;\nusing Azure.Core;\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.Maps;\nusing Azure.ResourceManager.Maps.Models;\nusing Azure.Maps.Search;\n\n\u002F\u002F Authenticate with Azure Resource Manager\nArmClient armClient = new ArmClient(new DefaultAzureCredential());\n\n\u002F\u002F Get Maps account resource\nResourceIdentifier mapsAccountResourceId = MapsAccountResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, accountName);\nMapsAccountResource mapsAccount = armClient.GetMapsAccountResource(mapsAccountResourceId);\n\n\u002F\u002F Generate SAS token\nMapsAccountSasContent sasContent = new MapsAccountSasContent(\n    MapsSigningKey.PrimaryKey,\n    principalId,\n    maxRatePerSecond: 500,\n    start: DateTime.UtcNow.ToString(\"O\"),\n    expiry: DateTime.UtcNow.AddDays(1).ToString(\"O\"));\n\nResponse\u003CMapsAccountSasToken> sas = mapsAccount.GetSas(sasContent);\n\n\u002F\u002F Create client with SAS token\nvar sasCredential = new AzureSasCredential(sas.Value.AccountSasToken);\nvar client = new MapsSearchClient(sasCredential);\n```\n\n## Client Hierarchy\n\n```\nAzure.Maps.Search\n└── MapsSearchClient\n    ├── GetGeocoding()                    → Geocode addresses\n    ├── GetGeocodingBatch()               → Batch geocoding\n    ├── GetReverseGeocoding()             → Coordinates to address\n    ├── GetReverseGeocodingBatch()        → Batch reverse geocoding\n    └── GetPolygon()                      → Get boundary polygons\n\nAzure.Maps.Routing\n└── MapsRoutingClient\n    ├── GetDirections()                   → Route directions\n    ├── GetImmediateRouteMatrix()         → Route matrix (sync, ≤100)\n    ├── GetRouteMatrix()                  → Route matrix (async, ≤700)\n    └── GetRouteRange()                   → Isochrone\u002Freachable range\n\nAzure.Maps.Rendering\n└── MapsRenderingClient\n    ├── GetMapTile()                      → Map tiles\n    ├── GetMapStaticImage()               → Static map images\n    └── GetCopyrightCaption()             → Copyright info\n\nAzure.Maps.Geolocation\n└── MapsGeolocationClient\n    └── GetCountryCode()                  → IP to country\u002Fregion\n\nAzure.Maps.Weather\n└── MapsWeatherClient\n    ├── GetCurrentWeatherConditions()     → Current weather\n    ├── GetDailyForecast()                → Daily forecast\n    ├── GetHourlyForecast()               → Hourly forecast\n    └── GetSevereWeatherAlerts()          → Weather alerts\n```\n\n## Core Workflows\n\n### 1. Geocoding (Address to Coordinates)\n\n```csharp\nusing Azure;\nusing Azure.Maps.Search;\n\nvar credential = new AzureKeyCredential(subscriptionKey);\nvar client = new MapsSearchClient(credential);\n\nResponse\u003CGeocodingResponse> result = client.GetGeocoding(\"1 Microsoft Way, Redmond, WA 98052\");\n\nforeach (var feature in result.Value.Features)\n{\n    Console.WriteLine($\"Coordinates: {string.Join(\",\", feature.Geometry.Coordinates)}\");\n    Console.WriteLine($\"Address: {feature.Properties.Address.FormattedAddress}\");\n    Console.WriteLine($\"Confidence: {feature.Properties.Confidence}\");\n}\n```\n\n### 2. Batch Geocoding\n\n```csharp\nusing Azure.Maps.Search.Models.Queries;\n\nList\u003CGeocodingQuery> queries = new List\u003CGeocodingQuery>\n{\n    new GeocodingQuery() { Query = \"400 Broad St, Seattle, WA\" },\n    new GeocodingQuery() { Query = \"1 Microsoft Way, Redmond, WA\" },\n    new GeocodingQuery() { AddressLine = \"Space Needle\", Top = 1 },\n};\n\nResponse\u003CGeocodingBatchResponse> results = client.GetGeocodingBatch(queries);\n\nforeach (var batchItem in results.Value.BatchItems)\n{\n    foreach (var feature in batchItem.Features)\n    {\n        Console.WriteLine($\"Coordinates: {string.Join(\",\", feature.Geometry.Coordinates)}\");\n    }\n}\n```\n\n### 3. Reverse Geocoding (Coordinates to Address)\n\n```csharp\nusing Azure.Core.GeoJson;\n\nGeoPosition coordinates = new GeoPosition(-122.138685, 47.6305637);\nResponse\u003CGeocodingResponse> result = client.GetReverseGeocoding(coordinates);\n\nforeach (var feature in result.Value.Features)\n{\n    Console.WriteLine($\"Address: {feature.Properties.Address.FormattedAddress}\");\n    Console.WriteLine($\"Locality: {feature.Properties.Address.Locality}\");\n}\n```\n\n### 4. Get Boundary Polygon\n\n```csharp\nusing Azure.Maps.Search.Models;\n\nGetPolygonOptions options = new GetPolygonOptions()\n{\n    Coordinates = new GeoPosition(-122.204141, 47.61256),\n    ResultType = BoundaryResultTypeEnum.Locality,\n    Resolution = ResolutionEnum.Small,\n};\n\nResponse\u003CBoundary> result = client.GetPolygon(options);\n\nConsole.WriteLine($\"Boundary copyright: {result.Value.Properties?.Copyright}\");\nConsole.WriteLine($\"Polygon count: {result.Value.Geometry.Count}\");\n```\n\n### 5. Route Directions\n\n```csharp\nusing Azure;\nusing Azure.Core.GeoJson;\nusing Azure.Maps.Routing;\nusing Azure.Maps.Routing.Models;\n\nvar client = new MapsRoutingClient(new AzureKeyCredential(subscriptionKey));\n\nList\u003CGeoPosition> routePoints = new List\u003CGeoPosition>()\n{\n    new GeoPosition(-122.34, 47.61),  \u002F\u002F Seattle\n    new GeoPosition(-122.13, 47.64)   \u002F\u002F Redmond\n};\n\nRouteDirectionQuery query = new RouteDirectionQuery(routePoints);\nResponse\u003CRouteDirections> result = client.GetDirections(query);\n\nforeach (var route in result.Value.Routes)\n{\n    Console.WriteLine($\"Distance: {route.Summary.LengthInMeters} meters\");\n    Console.WriteLine($\"Duration: {route.Summary.TravelTimeDuration}\");\n\n    foreach (RouteLeg leg in route.Legs)\n    {\n        Console.WriteLine($\"Leg points: {leg.Points.Count}\");\n    }\n}\n```\n\n### 6. Route Directions with Options\n\n```csharp\nRouteDirectionOptions options = new RouteDirectionOptions()\n{\n    RouteType = RouteType.Fastest,\n    UseTrafficData = true,\n    TravelMode = TravelMode.Bicycle,\n    Language = RoutingLanguage.EnglishUsa,\n    InstructionsType = RouteInstructionsType.Text,\n};\n\nRouteDirectionQuery query = new RouteDirectionQuery(routePoints)\n{\n    RouteDirectionOptions = options\n};\n\nResponse\u003CRouteDirections> result = client.GetDirections(query);\n```\n\n### 7. Route Matrix\n\n```csharp\nRouteMatrixQuery routeMatrixQuery = new RouteMatrixQuery\n{\n    Origins = new List\u003CGeoPosition>()\n    {\n        new GeoPosition(-122.34, 47.61),\n        new GeoPosition(-122.13, 47.64)\n    },\n    Destinations = new List\u003CGeoPosition>()\n    {\n        new GeoPosition(-122.20, 47.62),\n        new GeoPosition(-122.40, 47.65)\n    },\n};\n\n\u002F\u002F Synchronous (up to 100 route combinations)\nResponse\u003CRouteMatrixResult> result = client.GetImmediateRouteMatrix(routeMatrixQuery);\n\nforeach (var cell in result.Value.Matrix.SelectMany(row => row))\n{\n    Console.WriteLine($\"Distance: {cell.Response?.RouteSummary?.LengthInMeters}\");\n    Console.WriteLine($\"Duration: {cell.Response?.RouteSummary?.TravelTimeDuration}\");\n}\n\n\u002F\u002F Asynchronous (up to 700 route combinations)\nRouteMatrixOptions routeMatrixOptions = new RouteMatrixOptions(routeMatrixQuery)\n{\n    TravelTimeType = TravelTimeType.All,\n};\nGetRouteMatrixOperation asyncResult = client.GetRouteMatrix(WaitUntil.Completed, routeMatrixOptions);\n```\n\n### 8. Route Range (Isochrone)\n\n```csharp\nRouteRangeOptions options = new RouteRangeOptions(-122.34, 47.61)\n{\n    TimeBudget = new TimeSpan(0, 20, 0)  \u002F\u002F 20 minutes\n};\n\nResponse\u003CRouteRangeResult> result = client.GetRouteRange(options);\n\n\u002F\u002F result.Value.ReachableRange contains the polygon\nConsole.WriteLine($\"Boundary points: {result.Value.ReachableRange.Boundary.Count}\");\n```\n\n### 9. Get Map Tiles\n\n```csharp\nusing Azure;\nusing Azure.Maps.Rendering;\n\nvar client = new MapsRenderingClient(new AzureKeyCredential(subscriptionKey));\n\nint zoom = 10;\nint tileSize = 256;\n\n\u002F\u002F Convert coordinates to tile index\nMapTileIndex tileIndex = MapsRenderingClient.PositionToTileXY(\n    new GeoPosition(13.3854, 52.517), zoom, tileSize);\n\n\u002F\u002F Fetch map tile\nGetMapTileOptions options = new GetMapTileOptions(\n    MapTileSetId.MicrosoftImagery,\n    new MapTileIndex(tileIndex.X, tileIndex.Y, zoom)\n);\n\nResponse\u003CStream> mapTile = client.GetMapTile(options);\n\n\u002F\u002F Save to file\nusing (FileStream fileStream = File.Create(\".\u002FMapTile.png\"))\n{\n    mapTile.Value.CopyTo(fileStream);\n}\n```\n\n### 10. IP Geolocation\n\n```csharp\nusing System.Net;\nusing Azure;\nusing Azure.Maps.Geolocation;\n\nvar client = new MapsGeolocationClient(new AzureKeyCredential(subscriptionKey));\n\nIPAddress ipAddress = IPAddress.Parse(\"2001:4898:80e8:b::189\");\nResponse\u003CCountryRegionResult> result = client.GetCountryCode(ipAddress);\n\nConsole.WriteLine($\"Country ISO Code: {result.Value.IsoCode}\");\n```\n\n### 11. Current Weather\n\n```csharp\nusing Azure;\nusing Azure.Core.GeoJson;\nusing Azure.Maps.Weather;\n\nvar client = new MapsWeatherClient(new AzureKeyCredential(subscriptionKey));\n\nvar position = new GeoPosition(-122.13071, 47.64011);\nvar options = new GetCurrentWeatherConditionsOptions(position);\n\nResponse\u003CCurrentConditionsResult> result = client.GetCurrentWeatherConditions(options);\n\nforeach (var condition in result.Value.Results)\n{\n    Console.WriteLine($\"Temperature: {condition.Temperature.Value} {condition.Temperature.Unit}\");\n    Console.WriteLine($\"Weather: {condition.Phrase}\");\n    Console.WriteLine($\"Humidity: {condition.RelativeHumidity}%\");\n}\n```\n\n## Key Types Reference\n\n### Search Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsSearchClient` | Main client for search operations |\n| `GeocodingResponse` | Geocoding result |\n| `GeocodingBatchResponse` | Batch geocoding result |\n| `GeocodingQuery` | Query for batch geocoding |\n| `ReverseGeocodingQuery` | Query for batch reverse geocoding |\n| `GetPolygonOptions` | Options for polygon retrieval |\n| `Boundary` | Boundary polygon result |\n| `BoundaryResultTypeEnum` | Boundary type (Locality, AdminDistrict, etc.) |\n| `ResolutionEnum` | Polygon resolution (Small, Medium, Large) |\n\n### Routing Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsRoutingClient` | Main client for routing operations |\n| `RouteDirectionQuery` | Query for route directions |\n| `RouteDirectionOptions` | Route calculation options |\n| `RouteDirections` | Route directions result |\n| `RouteLeg` | Segment of a route |\n| `RouteMatrixQuery` | Query for route matrix |\n| `RouteMatrixResult` | Route matrix result |\n| `RouteRangeOptions` | Options for isochrone |\n| `RouteRangeResult` | Isochrone result |\n| `RouteType` | Route type (Fastest, Shortest, Eco, Thrilling) |\n| `TravelMode` | Travel mode (Car, Truck, Bicycle, Pedestrian) |\n\n### Rendering Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsRenderingClient` | Main client for rendering |\n| `GetMapTileOptions` | Map tile options |\n| `MapTileIndex` | Tile coordinates (X, Y, Zoom) |\n| `MapTileSetId` | Tile set identifier |\n\n### Common Types\n\n| Type | Purpose |\n|------|---------|\n| `GeoPosition` | Geographic position (longitude, latitude) |\n| `GeoBoundingBox` | Bounding box for geographic area |\n\n## Best Practices\n\n1. **Use Entra ID for production** — Prefer over subscription keys\n2. **Batch operations** — Use batch geocoding for multiple addresses\n3. **Cache results** — Geocoding results don't change frequently\n4. **Use appropriate tile sizes** — 256 or 512 pixels based on display\n5. **Handle rate limits** — Implement exponential backoff\n6. **Use async route matrix** — For large matrix calculations (>100)\n7. **Consider traffic data** — Set `UseTrafficData = true` for accurate ETAs\n\n## Error Handling\n\n```csharp\ntry\n{\n    Response\u003CGeocodingResponse> result = client.GetGeocoding(address);\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Status: {ex.Status}\");\n    Console.WriteLine($\"Error: {ex.Message}\");\n\n    switch (ex.Status)\n    {\n        case 400:\n            \u002F\u002F Invalid request parameters\n            break;\n        case 401:\n            \u002F\u002F Authentication failed\n            break;\n        case 429:\n            \u002F\u002F Rate limited - implement backoff\n            break;\n    }\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.Maps.Search` | Geocoding, search | `dotnet add package Azure.Maps.Search --prerelease` |\n| `Azure.Maps.Routing` | Directions, matrix | `dotnet add package Azure.Maps.Routing --prerelease` |\n| `Azure.Maps.Rendering` | Map tiles, images | `dotnet add package Azure.Maps.Rendering --prerelease` |\n| `Azure.Maps.Geolocation` | IP geolocation | `dotnet add package Azure.Maps.Geolocation --prerelease` |\n| `Azure.Maps.Weather` | Weather data | `dotnet add package Azure.Maps.Weather --prerelease` |\n| `Azure.ResourceManager.Maps` | Account management | `dotnet add package Azure.ResourceManager.Maps --prerelease` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Azure Maps Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-maps\u002F |\n| Search API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.maps.search |\n| Routing API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.maps.routing |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fmaps |\n| Pricing | https:\u002F\u002Fazure.microsoft.com\u002Fpricing\u002Fdetails\u002Fazure-maps\u002F |\n","# Azure Maps (.NET)\n\nAzure Maps SDK for .NET providing location-based services: geocoding, routing, rendering, geolocation, and weather.\n\n## Installation\n\n```bash\n# Search (geocoding, reverse geocoding)\ndotnet add package Azure.Maps.Search --prerelease\n\n# Routing (directions, route matrix)\ndotnet add package Azure.Maps.Routing --prerelease\n\n# Rendering (map tiles, static images)\ndotnet add package Azure.Maps.Rendering --prerelease\n\n# Geolocation (IP to location)\ndotnet add package Azure.Maps.Geolocation --prerelease\n\n# Weather\ndotnet add package Azure.Maps.Weather --prerelease\n\n# Resource Management (account management, SAS tokens)\ndotnet add package Azure.ResourceManager.Maps --prerelease\n\n# Required for authentication\ndotnet add package Azure.Identity\n```\n\n**Current Versions**:\n- `Azure.Maps.Search`: v2.0.0-beta.5\n- `Azure.Maps.Routing`: v1.0.0-beta.4\n- `Azure.Maps.Rendering`: v2.0.0-beta.1\n- `Azure.Maps.Geolocation`: v1.0.0-beta.3\n- `Azure.ResourceManager.Maps`: v1.1.0-beta.2\n\n## Environment Variables\n\n```bash\nAZURE_MAPS_SUBSCRIPTION_KEY=\u003Cyour-subscription-key>\nAZURE_MAPS_CLIENT_ID=\u003Cyour-client-id>  # For Entra ID auth\n```\n\n## Authentication\n\n### Subscription Key (Shared Key)\n\n```csharp\nusing Azure;\nusing Azure.Maps.Search;\n\nvar subscriptionKey = Environment.GetEnvironmentVariable(\"AZURE_MAPS_SUBSCRIPTION_KEY\");\nvar credential = new AzureKeyCredential(subscriptionKey);\n\nvar client = new MapsSearchClient(credential);\n```\n\n### Microsoft Entra ID (Recommended for Production)\n\n```csharp\nusing Azure.Identity;\nusing Azure.Maps.Search;\n\nvar credential = new DefaultAzureCredential();\nvar clientId = Environment.GetEnvironmentVariable(\"AZURE_MAPS_CLIENT_ID\");\n\nvar client = new MapsSearchClient(credential, clientId);\n```\n\n### Shared Access Signature (SAS)\n\n```csharp\nusing Azure;\nusing Azure.Core;\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.Maps;\nusing Azure.ResourceManager.Maps.Models;\nusing Azure.Maps.Search;\n\n\u002F\u002F Authenticate with Azure Resource Manager\nArmClient armClient = new ArmClient(new DefaultAzureCredential());\n\n\u002F\u002F Get Maps account resource\nResourceIdentifier mapsAccountResourceId = MapsAccountResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, accountName);\nMapsAccountResource mapsAccount = armClient.GetMapsAccountResource(mapsAccountResourceId);\n\n\u002F\u002F Generate SAS token\nMapsAccountSasContent sasContent = new MapsAccountSasContent(\n    MapsSigningKey.PrimaryKey,\n    principalId,\n    maxRatePerSecond: 500,\n    start: DateTime.UtcNow.ToString(\"O\"),\n    expiry: DateTime.UtcNow.AddDays(1).ToString(\"O\"));\n\nResponse\u003CMapsAccountSasToken> sas = mapsAccount.GetSas(sasContent);\n\n\u002F\u002F Create client with SAS token\nvar sasCredential = new AzureSasCredential(sas.Value.AccountSasToken);\nvar client = new MapsSearchClient(sasCredential);\n```\n\n## Client Hierarchy\n\n```\nAzure.Maps.Search\n└── MapsSearchClient\n    ├── GetGeocoding()                    → Geocode addresses\n    ├── GetGeocodingBatch()               → Batch geocoding\n    ├── GetReverseGeocoding()             → Coordinates to address\n    ├── GetReverseGeocodingBatch()        → Batch reverse geocoding\n    └── GetPolygon()                      → Get boundary polygons\n\nAzure.Maps.Routing\n└── MapsRoutingClient\n    ├── GetDirections()                   → Route directions\n    ├── GetImmediateRouteMatrix()         → Route matrix (sync, ≤100)\n    ├── GetRouteMatrix()                  → Route matrix (async, ≤700)\n    └── GetRouteRange()                   → Isochrone\u002Freachable range\n\nAzure.Maps.Rendering\n└── MapsRenderingClient\n    ├── GetMapTile()                      → Map tiles\n    ├── GetMapStaticImage()               → Static map images\n    └── GetCopyrightCaption()             → Copyright info\n\nAzure.Maps.Geolocation\n└── MapsGeolocationClient\n    └── GetCountryCode()                  → IP to country\u002Fregion\n\nAzure.Maps.Weather\n└── MapsWeatherClient\n    ├── GetCurrentWeatherConditions()     → Current weather\n    ├── GetDailyForecast()                → Daily forecast\n    ├── GetHourlyForecast()               → Hourly forecast\n    └── GetSevereWeatherAlerts()          → Weather alerts\n```\n\n## Core Workflows\n\n### 1. Geocoding (Address to Coordinates)\n\n```csharp\nusing Azure;\nusing Azure.Maps.Search;\n\nvar credential = new AzureKeyCredential(subscriptionKey);\nvar client = new MapsSearchClient(credential);\n\nResponse\u003CGeocodingResponse> result = client.GetGeocoding(\"1 Microsoft Way, Redmond, WA 98052\");\n\nforeach (var feature in result.Value.Features)\n{\n    Console.WriteLine($\"Coordinates: {string.Join(\",\", feature.Geometry.Coordinates)}\");\n    Console.WriteLine($\"Address: {feature.Properties.Address.FormattedAddress}\");\n    Console.WriteLine($\"Confidence: {feature.Properties.Confidence}\");\n}\n```\n\n### 2. Batch Geocoding\n\n```csharp\nusing Azure.Maps.Search.Models.Queries;\n\nList\u003CGeocodingQuery> queries = new List\u003CGeocodingQuery>\n{\n    new GeocodingQuery() { Query = \"400 Broad St, Seattle, WA\" },\n    new GeocodingQuery() { Query = \"1 Microsoft Way, Redmond, WA\" },\n    new GeocodingQuery() { AddressLine = \"Space Needle\", Top = 1 },\n};\n\nResponse\u003CGeocodingBatchResponse> results = client.GetGeocodingBatch(queries);\n\nforeach (var batchItem in results.Value.BatchItems)\n{\n    foreach (var feature in batchItem.Features)\n    {\n        Console.WriteLine($\"Coordinates: {string.Join(\",\", feature.Geometry.Coordinates)}\");\n    }\n}\n```\n\n### 3. Reverse Geocoding (Coordinates to Address)\n\n```csharp\nusing Azure.Core.GeoJson;\n\nGeoPosition coordinates = new GeoPosition(-122.138685, 47.6305637);\nResponse\u003CGeocodingResponse> result = client.GetReverseGeocoding(coordinates);\n\nforeach (var feature in result.Value.Features)\n{\n    Console.WriteLine($\"Address: {feature.Properties.Address.FormattedAddress}\");\n    Console.WriteLine($\"Locality: {feature.Properties.Address.Locality}\");\n}\n```\n\n### 4. Get Boundary Polygon\n\n```csharp\nusing Azure.Maps.Search.Models;\n\nGetPolygonOptions options = new GetPolygonOptions()\n{\n    Coordinates = new GeoPosition(-122.204141, 47.61256),\n    ResultType = BoundaryResultTypeEnum.Locality,\n    Resolution = ResolutionEnum.Small,\n};\n\nResponse\u003CBoundary> result = client.GetPolygon(options);\n\nConsole.WriteLine($\"Boundary copyright: {result.Value.Properties?.Copyright}\");\nConsole.WriteLine($\"Polygon count: {result.Value.Geometry.Count}\");\n```\n\n### 5. Route Directions\n\n```csharp\nusing Azure;\nusing Azure.Core.GeoJson;\nusing Azure.Maps.Routing;\nusing Azure.Maps.Routing.Models;\n\nvar client = new MapsRoutingClient(new AzureKeyCredential(subscriptionKey));\n\nList\u003CGeoPosition> routePoints = new List\u003CGeoPosition>()\n{\n    new GeoPosition(-122.34, 47.61),  \u002F\u002F Seattle\n    new GeoPosition(-122.13, 47.64)   \u002F\u002F Redmond\n};\n\nRouteDirectionQuery query = new RouteDirectionQuery(routePoints);\nResponse\u003CRouteDirections> result = client.GetDirections(query);\n\nforeach (var route in result.Value.Routes)\n{\n    Console.WriteLine($\"Distance: {route.Summary.LengthInMeters} meters\");\n    Console.WriteLine($\"Duration: {route.Summary.TravelTimeDuration}\");\n\n    foreach (RouteLeg leg in route.Legs)\n    {\n        Console.WriteLine($\"Leg points: {leg.Points.Count}\");\n    }\n}\n```\n\n### 6. Route Directions with Options\n\n```csharp\nRouteDirectionOptions options = new RouteDirectionOptions()\n{\n    RouteType = RouteType.Fastest,\n    UseTrafficData = true,\n    TravelMode = TravelMode.Bicycle,\n    Language = RoutingLanguage.EnglishUsa,\n    InstructionsType = RouteInstructionsType.Text,\n};\n\nRouteDirectionQuery query = new RouteDirectionQuery(routePoints)\n{\n    RouteDirectionOptions = options\n};\n\nResponse\u003CRouteDirections> result = client.GetDirections(query);\n```\n\n### 7. Route Matrix\n\n```csharp\nRouteMatrixQuery routeMatrixQuery = new RouteMatrixQuery\n{\n    Origins = new List\u003CGeoPosition>()\n    {\n        new GeoPosition(-122.34, 47.61),\n        new GeoPosition(-122.13, 47.64)\n    },\n    Destinations = new List\u003CGeoPosition>()\n    {\n        new GeoPosition(-122.20, 47.62),\n        new GeoPosition(-122.40, 47.65)\n    },\n};\n\n\u002F\u002F Synchronous (up to 100 route combinations)\nResponse\u003CRouteMatrixResult> result = client.GetImmediateRouteMatrix(routeMatrixQuery);\n\nforeach (var cell in result.Value.Matrix.SelectMany(row => row))\n{\n    Console.WriteLine($\"Distance: {cell.Response?.RouteSummary?.LengthInMeters}\");\n    Console.WriteLine($\"Duration: {cell.Response?.RouteSummary?.TravelTimeDuration}\");\n}\n\n\u002F\u002F Asynchronous (up to 700 route combinations)\nRouteMatrixOptions routeMatrixOptions = new RouteMatrixOptions(routeMatrixQuery)\n{\n    TravelTimeType = TravelTimeType.All,\n};\nGetRouteMatrixOperation asyncResult = client.GetRouteMatrix(WaitUntil.Completed, routeMatrixOptions);\n```\n\n### 8. Route Range (Isochrone)\n\n```csharp\nRouteRangeOptions options = new RouteRangeOptions(-122.34, 47.61)\n{\n    TimeBudget = new TimeSpan(0, 20, 0)  \u002F\u002F 20 minutes\n};\n\nResponse\u003CRouteRangeResult> result = client.GetRouteRange(options);\n\n\u002F\u002F result.Value.ReachableRange contains the polygon\nConsole.WriteLine($\"Boundary points: {result.Value.ReachableRange.Boundary.Count}\");\n```\n\n### 9. Get Map Tiles\n\n```csharp\nusing Azure;\nusing Azure.Maps.Rendering;\n\nvar client = new MapsRenderingClient(new AzureKeyCredential(subscriptionKey));\n\nint zoom = 10;\nint tileSize = 256;\n\n\u002F\u002F Convert coordinates to tile index\nMapTileIndex tileIndex = MapsRenderingClient.PositionToTileXY(\n    new GeoPosition(13.3854, 52.517), zoom, tileSize);\n\n\u002F\u002F Fetch map tile\nGetMapTileOptions options = new GetMapTileOptions(\n    MapTileSetId.MicrosoftImagery,\n    new MapTileIndex(tileIndex.X, tileIndex.Y, zoom)\n);\n\nResponse\u003CStream> mapTile = client.GetMapTile(options);\n\n\u002F\u002F Save to file\nusing (FileStream fileStream = File.Create(\".\u002FMapTile.png\"))\n{\n    mapTile.Value.CopyTo(fileStream);\n}\n```\n\n### 10. IP Geolocation\n\n```csharp\nusing System.Net;\nusing Azure;\nusing Azure.Maps.Geolocation;\n\nvar client = new MapsGeolocationClient(new AzureKeyCredential(subscriptionKey));\n\nIPAddress ipAddress = IPAddress.Parse(\"2001:4898:80e8:b::189\");\nResponse\u003CCountryRegionResult> result = client.GetCountryCode(ipAddress);\n\nConsole.WriteLine($\"Country ISO Code: {result.Value.IsoCode}\");\n```\n\n### 11. Current Weather\n\n```csharp\nusing Azure;\nusing Azure.Core.GeoJson;\nusing Azure.Maps.Weather;\n\nvar client = new MapsWeatherClient(new AzureKeyCredential(subscriptionKey));\n\nvar position = new GeoPosition(-122.13071, 47.64011);\nvar options = new GetCurrentWeatherConditionsOptions(position);\n\nResponse\u003CCurrentConditionsResult> result = client.GetCurrentWeatherConditions(options);\n\nforeach (var condition in result.Value.Results)\n{\n    Console.WriteLine($\"Temperature: {condition.Temperature.Value} {condition.Temperature.Unit}\");\n    Console.WriteLine($\"Weather: {condition.Phrase}\");\n    Console.WriteLine($\"Humidity: {condition.RelativeHumidity}%\");\n}\n```\n\n## Key Types Reference\n\n### Search Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsSearchClient` | Main client for search operations |\n| `GeocodingResponse` | Geocoding result |\n| `GeocodingBatchResponse` | Batch geocoding result |\n| `GeocodingQuery` | Query for batch geocoding |\n| `ReverseGeocodingQuery` | Query for batch reverse geocoding |\n| `GetPolygonOptions` | Options for polygon retrieval |\n| `Boundary` | Boundary polygon result |\n| `BoundaryResultTypeEnum` | Boundary type (Locality, AdminDistrict, etc.) |\n| `ResolutionEnum` | Polygon resolution (Small, Medium, Large) |\n\n### Routing Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsRoutingClient` | Main client for routing operations |\n| `RouteDirectionQuery` | Query for route directions |\n| `RouteDirectionOptions` | Route calculation options |\n| `RouteDirections` | Route directions result |\n| `RouteLeg` | Segment of a route |\n| `RouteMatrixQuery` | Query for route matrix |\n| `RouteMatrixResult` | Route matrix result |\n| `RouteRangeOptions` | Options for isochrone |\n| `RouteRangeResult` | Isochrone result |\n| `RouteType` | Route type (Fastest, Shortest, Eco, Thrilling) |\n| `TravelMode` | Travel mode (Car, Truck, Bicycle, Pedestrian) |\n\n### Rendering Package\n\n| Type | Purpose |\n|------|---------|\n| `MapsRenderingClient` | Main client for rendering |\n| `GetMapTileOptions` | Map tile options |\n| `MapTileIndex` | Tile coordinates (X, Y, Zoom) |\n| `MapTileSetId` | Tile set identifier |\n\n### Common Types\n\n| Type | Purpose |\n|------|---------|\n| `GeoPosition` | Geographic position (longitude, latitude) |\n| `GeoBoundingBox` | Bounding box for geographic area |\n\n## Best Practices\n\n1. **Use Entra ID for production** — Prefer over subscription keys\n2. **Batch operations** — Use batch geocoding for multiple addresses\n3. **Cache results** — Geocoding results don't change frequently\n4. **Use appropriate tile sizes** — 256 or 512 pixels based on display\n5. **Handle rate limits** — Implement exponential backoff\n6. **Use async route matrix** — For large matrix calculations (>100)\n7. **Consider traffic data** — Set `UseTrafficData = true` for accurate ETAs\n\n## Error Handling\n\n```csharp\ntry\n{\n    Response\u003CGeocodingResponse> result = client.GetGeocoding(address);\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Status: {ex.Status}\");\n    Console.WriteLine($\"Error: {ex.Message}\");\n\n    switch (ex.Status)\n    {\n        case 400:\n            \u002F\u002F Invalid request parameters\n            break;\n        case 401:\n            \u002F\u002F Authentication failed\n            break;\n        case 429:\n            \u002F\u002F Rate limited - implement backoff\n            break;\n    }\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.Maps.Search` | Geocoding, search | `dotnet add package Azure.Maps.Search --prerelease` |\n| `Azure.Maps.Routing` | Directions, matrix | `dotnet add package Azure.Maps.Routing --prerelease` |\n| `Azure.Maps.Rendering` | Map tiles, images | `dotnet add package Azure.Maps.Rendering --prerelease` |\n| `Azure.Maps.Geolocation` | IP geolocation | `dotnet add package Azure.Maps.Geolocation --prerelease` |\n| `Azure.Maps.Weather` | Weather data | `dotnet add package Azure.Maps.Weather --prerelease` |\n| `Azure.ResourceManager.Maps` | Account management | `dotnet add package Azure.ResourceManager.Maps --prerelease` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Azure Maps Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-maps\u002F |\n| Search API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.maps.search |\n| Routing API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.maps.routing |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fmaps |\n| Pricing | https:\u002F\u002Fazure.microsoft.com\u002Fpricing\u002Fdetails\u002Fazure-maps\u002F |\n",{"name":5,"license":15,"metadata":44,"description":48},{"author":45,"package":46,"version":47},"Microsoft","Azure.Maps.Search","1.0.0","Azure Maps SDK for .NET. Location-based services including geocoding, routing, rendering, geolocation, and weather. Use for address search, directions, map tiles, IP geolocation, and weather data. Triggers: \"Azure Maps\", \"MapsSearchClient\", \"MapsRoutingClient\", \"MapsRenderingClient\", \"geocoding .NET\", \"route directions\", \"map tiles\", \"geolocation\".\n","main","5c95bcac4646c5aed06bd9aed5235cfc7985aafc","included\u002Fskills\u002Fby-category\u002Fgame-mobile-visual-qa\u002Fofficial-vendor-reference\u002Fazure-maps-search-dotnet",0,"https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked","https:\u002F\u002Fgithub.com\u002Fstrmt7","2026-11-11 04:18:12",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add strmt7\u002Fai_skills_collection_benchmarked --skill azure-maps-search-dotnet",{"tool":62,"command":63},"bunx","bunx skills add strmt7\u002Fai_skills_collection_benchmarked --skill azure-maps-search-dotnet",{"tool":65,"command":66},"pnpm","pnpm dlx skills add strmt7\u002Fai_skills_collection_benchmarked --skill azure-maps-search-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fgame-mobile-visual-qa\u002Fofficial-vendor-reference\u002Fazure-maps-search-dotnet\u002FSKILL.md",true,[70],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Facceptance-criteria.md","REFERENCE","参考文档",13379,"https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fgame-mobile-visual-qa\u002Fofficial-vendor-reference\u002Fazure-maps-search-dotnet\u002Freferences\u002Facceptance-criteria.md",[77,110,140,165,189,217],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":82,"sourceHtmlUrl":83,"categories":84,"keywords":93,"publishedAt":39},"01M71D4H3T6M57DFKN8HENAWRV","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Ftesting-qa-benchmarking\u002Fofficial-reference\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Ftesting-qa-benchmarking\u002Fofficial-reference\u002Fwebapp-testing\u002FSKILL.md",[85,90],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000009","前端开发",[94,95,96,31,97,98,99,100,101,102,103,104,105,106,107,108,109],"webapp","testing","webapp testing","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":114,"sourceHtmlUrl":115,"categories":116,"keywords":120,"publishedAt":39},"01M71D4CQR2A2TB7GASCR5ZBG3","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Ftesting-qa-benchmarking\u002Fofficial-reference\u002Fskill-creator-anthropics\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Ftesting-qa-benchmarking\u002Fofficial-reference\u002Fskill-creator-anthropics\u002FSKILL.md",[117],{"categoryNo":118,"categoryName":119,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000023","Skill与智能体开发",[121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,31,139],"skill creator","creator","performance","improve","run evals","new","when","analysis","create","optimize","variance analysis","run","edit","benchmark","a skill","existing skill","evals","modify","accuracy",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":148,"publishedAt":39},"01M71D488XHEZVXXSXFYP8ENMH","playwright-skill","Complete browser automation with Playwright. Auto-detects dev servers, writes reusable test scripts, and supports screenshots, responsive checks, UX validation, login flows, link checks, and arbitrary browser automation. Use when the user wants to test a website, automate browser interactions, validate web functionality, or perform browser-based testing.","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Ftesting-qa-benchmarking\u002Flatest-release-browser-automation\u002Fplaywright-skill\u002FSKILL.md",[146,147],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":118,"categoryName":119,"taxonomyType":88,"taxonomyTypeDesc":89},[105,149,150,151,95,152,153,127,154,103,155,156,157,158,159,160,161,162,163,164],"playwright skill","browser automation","flows","auto","access","Bash","website","ux","login","scripts","read","write","node","install","network","responsive",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":169,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":39},"01M71CY25GM939M6RES91QSG3T","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fsearch-retrieval-web-automation\u002Fofficial-reference\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fsearch-retrieval-web-automation\u002Fofficial-reference\u002Fweb-artifacts-builder\u002FSKILL.md",[172],{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},[174,175,176,106,177,178,179,31,180,181,99,182,29,183,184,185,186,187,28,188],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","state management",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":193,"sourceHtmlUrl":194,"categories":195,"keywords":205,"publishedAt":39},"01M71CXZB60QJJ1H4S3NN94WMZ","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fsearch-retrieval-web-automation\u002Fofficial-reference\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fsearch-retrieval-web-automation\u002Fofficial-reference\u002Ffrontend-design\u002FSKILL.md",[196,197,200],{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":198,"categoryName":199,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":201,"categoryName":202,"taxonomyType":203,"taxonomyTypeDesc":204},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[99,206,207,179,208,209,210,97,211,212,29,127,176,213,184,214,185,215,216,104],"design","frontend design","ui design","generic","aesthetics","landing","pages","code","web ui","react components","examples",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":39},"01M71CVZ54WFBTVA7R16PFY1ZE","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002Fstrmt7\u002Fai_skills_collection_benchmarked\u002Fblob\u002Fmain\u002Fincluded\u002Fskills\u002Fby-category\u002Fscience-research-data-analysis\u002Flatest-release-community\u002Fzarr-python\u002FSKILL.md",[],[224,225,226,227,228,229,230,231,232,31,233,234,235,236,237,238,239,240],"zarr python","python","zarr","arrays","Cloud Storage","scientific","storage","parallel","dask","numpy","gcs","s3","integration","scientific computing","cloud","scale","pipelines"]