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

mapbox-android-patterns

Mapbox Maps SDK for Androidの公式インテグレーションパターンを提供するスキルです。インストール手順から、マーカーの追加、ユーザー位置情報の取得、カスタムデータの表示、スタイル設定、カメラ制御、フィーチャーセットの操作まで幅広くカバーします。公式Mapboxドキュメントに基づいており、Android向けマップ機能の実装時に活用できます。

description の原文を見る

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

SKILL.md 本文

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

Kotlin、Jetpack Compose、View システムを使用した Mapbox Maps SDK v11 の Android への統合パターン。

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

  • Mapbox Maps SDK for Android のインストールと設定
  • マップへのマーカーとアノテーションの追加
  • ユーザーの位置情報を表示し、カメラでトラッキング
  • カスタムデータ (GeoJSON) をマップに追加
  • マップスタイル、カメラ、またはユーザーインタラクションの操作
  • フィーチャーインタラクションとタップの処理

公式リソース:


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

必要条件

  • Android SDK 21+
  • Kotlin または Java
  • Android Studio
  • Mapbox の無料アカウント

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

app/res/values/mapbox_access_token.xml を作成:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <string name="mapbox_access_token" translatable="false"
        tools:ignore="UnusedResources">YOUR_MAPBOX_ACCESS_TOKEN</string>
</resources>

トークンを取得: mapbox.com でサインイン

ステップ 2: Maven リポジトリを追加

settings.gradle.kts で:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven {
            url = uri("https://api.mapbox.com/downloads/v2/releases/maven")
        }
    }
}

ステップ 3: 依存関係を追加

モジュール build.gradle.kts で:

android {
    defaultConfig {
        minSdk = 21
    }
}

dependencies {
    implementation("com.mapbox.maps:android:11.18.1")
}

Jetpack Compose の場合:

dependencies {
    implementation("com.mapbox.maps:android:11.18.1")
    implementation("com.mapbox.extension:maps-compose:11.18.1")
}

マップ初期化

Jetpack Compose パターン

基本的なマップ:

import androidx.compose.runtime.*
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import com.mapbox.maps.extension.compose.*
import com.mapbox.maps.Style
import com.mapbox.geojson.Point

@Composable
fun MapScreen() {
    MapboxMap(
        modifier = Modifier.fillMaxSize()
    ) {
        // MapEffect でカメラを初期化 (Style.STANDARD はデフォルトで読み込まれます)
        MapEffect(Unit) { mapView ->
            // 初期カメラ位置を設定
            mapView.mapboxMap.setCamera(
                CameraOptions.Builder()
                    .center(Point.fromLngLat(-122.4194, 37.7749))
                    .zoom(12.0)
                    .build()
            )
        }
    }
}

装飾付き:

MapboxMap(
    modifier = Modifier.fillMaxSize(),
    scaleBar = {
        ScaleBar(
            enabled = true,
            position = Alignment.BottomStart
        )
    },
    compass = {
        Compass(enabled = true)
    }
) {
    // Style.STANDARD はデフォルトで読み込まれます
}

View システム パターン

レイアウト XML (activity_map.xml):

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.mapbox.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Activity:

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mapbox.maps.MapView
import com.mapbox.maps.Style
import com.mapbox.geojson.Point

class MapActivity : AppCompatActivity() {
    private lateinit var mapView: MapView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_map)

        mapView = findViewById(R.id.mapView)

        mapView.mapboxMap.setCamera(
            CameraOptions.Builder()
                .center(Point.fromLngLat(-122.4194, 37.7749))
                .zoom(12.0)
                .build()
        )

        mapView.mapboxMap.loadStyle(Style.STANDARD)
    }

    override fun onStart() {
        super.onStart()
        mapView.onStart()
    }

    override fun onStop() {
        super.onStop()
        mapView.onStop()
    }

    override fun onDestroy() {
        super.onDestroy()
        mapView.onDestroy()
    }
}

マーカー追加 (ポイントアノテーション)

ポイントアノテーションはマップ上に位置をマークする最も一般的な方法です。

Jetpack Compose:

MapboxMap(modifier = Modifier.fillMaxSize()) {
    MapEffect(Unit) { mapView ->
        // まずスタイルを読み込む
        mapView.mapboxMap.loadStyle(Style.STANDARD)

        // アノテーションマネージャーを作成してマーカーを追加
        val annotationManager = mapView.annotations.createPointAnnotationManager()
        val pointAnnotation = PointAnnotationOptions()
            .withPoint(Point.fromLngLat(-122.4194, 37.7749))
            .withIconImage("custom-marker")
        annotationManager.create(pointAnnotation)
    }
}

// 注: Compose には宣言的な PointAnnotation コンポーネントがありません
// マーカーは MapEffect を介して命令型で追加する必要があります

View システム:

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

// マーカーを作成
val pointAnnotation = PointAnnotationOptions()
    .withPoint(Point.fromLngLat(-122.4194, 37.7749))
    .withIconImage("custom-marker")

pointAnnotationManager.create(pointAnnotation)

複数のマーカー:

val locations = listOf(
    Point.fromLngLat(-122.4194, 37.7749),
    Point.fromLngLat(-122.4094, 37.7849),
    Point.fromLngLat(-122.4294, 37.7649)
)

val annotations = locations.map { point ->
    PointAnnotationOptions()
        .withPoint(point)
        .withIconImage("marker")
}

pointAnnotationManager.create(annotations)

ユーザーの位置情報を表示

ステップ 1: AndroidManifest.xml にパーミッションを追加:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

ステップ 2: パーミッションをリクエストして位置情報を表示:

// まずパーミッションをリクエスト (ActivityResultContracts を使用)

// ロケーションパックを表示
mapView.location.updateSettings {
    enabled = true
    puckBearingEnabled = true
}

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

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

// 新しいマネージャーを繰り返し作成しないでください
// val manager = mapView.annotations.createPointAnnotationManager() // 毎回呼び出し

// 1回作成して再利用
val pointAnnotationManager = mapView.annotations.createPointAnnotationManager()

fun updateMarkers() {
    pointAnnotationManager.deleteAll()
    pointAnnotationManager.create(markers)
}

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

// すべて一度に作成
pointAnnotationManager.create(allAnnotations)

// ループで 1 つずつ作成しないこと

ライフサイクル管理

// 常にライフサイクルメソッドを呼び出す
override fun onStart() {
    super.onStart()
    mapView.onStart()
}

override fun onStop() {
    super.onStop()
    mapView.onStop()
}

override fun onDestroy() {
    super.onDestroy()
    mapView.onDestroy()
}

Standard スタイルを使用

// Standard スタイルは最適化されており推奨されています
Style.STANDARD

// 特定のユースケースで必要な場合のみ他のスタイルを使用
Style.STANDARD_SATELLITE // 衛星画像

トラブルシューティング

マップが表示されない

確認事項:

  1. mapbox_access_token.xml にトークンがある
  2. トークンが有効 (mapbox.com でテスト)
  3. Maven リポジトリが設定されている
  4. 依存関係が正しく追加されている
  5. マニフェストにインターネットパーミッションがある

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

mapView.mapboxMap.subscribeStyleLoaded { _ ->
    Log.d("Map", "Style loaded successfully")
    // ここでレイヤーとソースを追加
}

パフォーマンスの問題

  • Style.STANDARD を使用 (推奨かつ最適化)
  • 表示されるアノテーションをビューポートに制限
  • アノテーションマネージャーを再利用
  • 頻繁なスタイルの再読み込みを回避
  • ライフサイクルメソッド (onStart, onStop, onDestroy) を呼び出す
  • アノテーション更新をバッチ処理

リファレンスファイル

特定のトピックについての詳細なパターンが必要な場合は、以下のリファレンスを読み込んでください:

  • references/compose.md -- Jetpack Compose: 依存関係、トークン設定、MapboxMap、クリック付きアノテーション、GeoJSON、MapEffect
  • references/annotations.md -- サークル、ポリライン、ポリゴンアノテーションパターン
  • references/location-tracking.md -- カメラでユーザーの位置をフォロー + 現在位置の 1 回取得
  • references/custom-data.md -- GeoJSON ソースとレイヤー: ライン、ポリゴン、ポイント、更新/削除
  • references/camera-styles.md -- カメラコントロール (設定、アニメーション、フィット) + マップスタイル (ビルトインおよびカスタム)
  • references/interactions.md -- フィーチャーセットインタラクション、カスタムレイヤータップ、長押し、ジェスチャー

追加リソース

ライセンス: 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