Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

mapbox-ios-patterns

Mapbox Maps SDK for iOSの公式インテグレーションパターンを提供するスキルです。インストール、マーカーの追加、ユーザー位置情報、カスタムデータ、スタイル、カメラ制御、フィーチャーセットの操作など、iOSアプリへのMapbox実装全般をサポートします。公式Mapboxドキュメントに基づいており、地図機能の導入から応用まで幅広く活用できます。

description の原文を見る

Official integration patterns for Mapbox Maps SDK on iOS. Covers installation, adding markers, user location, custom data, styles, camera control, and featureset interactions. Based on official Mapbox documentation.

SKILL.md 本文

Mapbox iOS インテグレーションパターン

Swift、SwiftUI、UIKit を使用した Mapbox Maps SDK v11 を iOS に統合するための公式パターン。

このスキルを使用する場合:

  • Mapbox Maps SDK for iOS のインストールと設定
  • マップへのマーカーとアノテーションの追加
  • ユーザーロケーションの表示とカメラでの追跡
  • カスタムデータ(GeoJSON)のマップへの追加
  • マップスタイル、カメラ、またはユーザーインタラクションの操作
  • フィーチャーインタラクションとタップの処理

公式リソース:


インストール & セットアップ

要件

  • iOS 14+
  • Xcode 15+
  • Swift 5.9+
  • 無料の Mapbox アカウント

ステップ1: アクセストークンの設定

Info.plist にパブリックトークンを追加します:

<key>MBXAccessToken</key>
<string>pk.your_mapbox_token_here</string>

トークンを取得: mapbox.com にサインインします

ステップ2: Swift Package の依存関係を追加

  1. File → Add Package Dependencies
  2. URL を入力: https://github.com/mapbox/mapbox-maps-ios.git
  3. バージョン: 11.0.0 から "Up to Next Major"
  4. 確認 4つの依存関係が表示されます: MapboxCommon、MapboxCoreMaps、MapboxMaps、Turf

代替方法: CocoaPods または直接ダウンロード (インストールガイド)


マップの初期化

SwiftUI パターン

基本的なマップ:

import SwiftUI
import MapboxMaps

struct ContentView: View {
    @State private var viewport: Viewport = .camera(
        center: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194),
        zoom: 12
    )

    var body: some View {
        Map(viewport: $viewport)
            .mapStyle(.standard)
    }
}

オーナメント付き:

Map(viewport: $viewport)
    .mapStyle(.standard)
    .ornamentOptions(OrnamentOptions(
        scaleBar: .init(visibility: .visible),
        compass: .init(visibility: .adaptive),
        logo: .init(position: .bottomLeading)
    ))

UIKit パターン

import UIKit
import MapboxMaps

class MapViewController: UIViewController {
    private var mapView: MapView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let options = MapInitOptions(
            cameraOptions: CameraOptions(
                center: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194),
                zoom: 12
            )
        )

        mapView = MapView(frame: view.bounds, mapInitOptions: options)
        mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        view.addSubview(mapView)

        mapView.mapboxMap.loadStyle(.standard)
    }
}

マーカーの追加

SDK はマップにポイントを配置するための3つの方法を提供しています。最も適切なものを選択してください。

どの API を使うべき?

API用途プラットフォーム注記
Marker (Markers API)デフォルトピンが必要で、カスタム画像アセットがない場合SwiftUI のみ画像アセットは不要。実験的な SPI — @_spi(Experimental) import MapboxMaps が必要。100個未満のマーカーに最適。
PointAnnotationカスタム画像があり、レイヤーレベルの配置が必要な場合SwiftUI + UIKitシンボルレイヤーに支援され、数百のマーカーまでスケーリングします。UIKit がレンダリングできる任意の UIImage を受け入れます。
ビューアノテーション (ViewAnnotation / MapViewAnnotation)座標に固定されたフルネイティブビュー(カード、バッジ、アニメーション コンテンツ)をレンダリングしたい場合SwiftUI + UIKitSwiftUI は MapViewAnnotation を使用。UIKit は mapView.viewAnnotations を使用して ViewAnnotation を使用。各アノテーションは実ビュー — スケール時は PointAnnotation より コストが高い。

数百または数千のフィーチャーの場合、アノテーションの代わりにスタイルレイヤー(GeoJSONSource 上の SymbolLayer)を使用します。

Markers API (シンプルなケースに推奨、SwiftUI)

import SwiftUI
@_spi(Experimental) import MapboxMaps

struct ContentView: View {
    var body: some View {
        Map {
            Marker(coordinate: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194))
                .color(.red)
                .text("San Francisco")
        }
    }
}

コレクションから複数のマーカー:

Map {
    ForEvery(locations, id: \.id) { location in
        Marker(coordinate: location.coordinate)
            .color(.red)
            .text(location.name)
    }
}

スケーリングの注記。 MarkerPointAnnotation はそれぞれ、ピンごとに独自のビューまたはシンボルエントリを作成します — 約100個のマーカーまで問題ありません。より大きなデータセット(数百または数千のフィーチャー — オープンエンドの GeoJSON フィードで一般的)の場合、データを GeoJSONSource に読み込み、SymbolLayer でレンダリングしてください。これは数千のフィーチャーにスケーリングし、クラスタリングを有効にします。

PointAnnotation (カスタム画像)

SwiftUI:

Map(viewport: $viewport) {
    PointAnnotation(coordinate: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194))
        .image(.init(image: UIImage(named: "marker")!, name: "marker"))
}

UIKit:

// アノテーションマネージャーを作成(1回、更新用に再利用)
var pointAnnotationManager = mapView.annotations.makePointAnnotationManager()

// マーカーを作成
var annotation = PointAnnotation(coordinate: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194))
annotation.image = .init(image: UIImage(named: "marker")!, name: "marker")
annotation.iconAnchor = .bottom

// マップに追加
pointAnnotationManager.annotations = [annotation]

複数のマーカー:

let annotations = locations.map { coordinate in
    var annotation = PointAnnotation(coordinate: coordinate)
    annotation.image = .init(image: UIImage(named: "marker")!, name: "marker")
    return annotation
}

pointAnnotationManager.annotations = annotations

ユーザーロケーションの表示

ステップ1: ロケーション権限を Info.plist に追加:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

ステップ2: 権限をリクエストしてロケーションを表示:

import CoreLocation

// 権限をリクエスト
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

// ユーザーロケーションパック を表示
mapView.location.options.puckType = .puck2D()
mapView.location.options.puckBearingEnabled = true

パフォーマンスベストプラクティス

アノテーションマネージャーの再利用

// ❌ 繰り返し新しいマネージャーを作成しない
func updateMarkers() {
    let manager = mapView.annotations.makePointAnnotationManager()
    manager.annotations = markers
}

// ✅ 1回作成して再利用
let pointAnnotationManager: PointAnnotationManager

init() {
    pointAnnotationManager = mapView.annotations.makePointAnnotationManager()
}

func updateMarkers() {
    pointAnnotationManager.annotations = markers
}

バッチアノテーション更新

// ✅ すべてを一度に更新
pointAnnotationManager.annotations = newAnnotations

// ❌ 1つずつ更新しない
for annotation in newAnnotations {
    pointAnnotationManager.annotations.append(annotation)
}

メモリ管理

// クロージャで weak self を使用
mapView.gestures.onMapTap.observe { [weak self] context in
    self?.handleTap(context.coordinate)
}.store(in: &cancelables)

// deinit でクリーンアップ
deinit {
    cancelables.forEach { $0.cancel() }
}

標準スタイルを使用

// ✅ 標準スタイルは最適化済みで推奨
.mapStyle(.standard)

// 特定のユースケースが必要な場合のみ他のスタイルを使用
.mapStyle(.standardSatellite) // 衛星画像

トラブルシューティング

マップが表示されない

確認:

  1. ✅ Info.plist に MBXAccessToken がある
  2. ✅ トークンが有効(mapbox.com でテスト)
  3. ✅ MapboxMaps フレームワークが import されている
  4. ✅ MapView がビュー階層に追加されている
  5. ✅ 正しいフレーム/制約が設定されている

スタイルが読み込まれない

mapView.mapboxMap.onStyleLoaded.observe { [weak self] _ in
    print("Style loaded successfully")
    // レイヤーとソースをここに追加
}.store(in: &cancelables)

パフォーマンスの問題

  • .standard スタイルを使用(推奨で最適化)
  • 表示可能なアノテーションをビューポートに限定
  • アノテーションマネージャーを再利用
  • スタイルの頻繁な再読み込みを回避
  • アノテーション更新をバッチ処理

リファレンスファイル

タスクが詳細なパターンを必要とする場合、これらのリファレンスを読み込みます:

  • references/annotations.md — Circle、Polyline、Polygon Annotations
  • references/location-tracking.md — カメラでユーザーをフォロー + 現在位置を取得
  • references/custom-data.md — GeoJSON: Lines、Polygons、Points、更新/削除
  • references/camera-styles.md — カメラコントロール + マップスタイル
  • references/interactions.md — Featureset Interactions、カスタムレイヤータップ、長押し、ジェスチャー

追加リソース

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
mapbox
リポジトリ
mapbox/mapbox-agent-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/mapbox/mapbox-agent-skills / ライセンス: MIT

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: mapbox · mapbox/mapbox-agent-skills · ライセンス: MIT