ドキュメント / セットアップ / React / Apple MapKit
Apple MapKit セットアップ
Web で Apple MapKit JS を MapConductor から使う手順です。iOS 版と違い、Apple が発行する JWT トークンが必要です。
PACKAGE
react-for-mapkit
API KEY
JWT トークン
CSS
不要
REACT
19 以上
ほかのプラットフォームiOS
前提
Node.js 18 以上、React 19 以上
Apple Developer アカウントと MapKit JS の Maps ID / 秘密鍵
STEP 01
MapKit JS のトークンを用意する
Apple Developer で Maps ID と秘密鍵を作り、サーバー側で JWT を署名して発行します。トークンには有効期限があるため、長時間開いたままの画面では更新の仕組みが要ります。
注意
秘密鍵をフロントエンドに置かないでください。JWT の署名は必ずサーバー側で行います。
STEP 02
インストールする
MapKit JS は Apple の CDN からパッケージが動的に読み込みます。script タグを書く必要はありません。
terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-mapkitSTEP 03
トークンを状態フックに渡す
静的なトークンを渡すほか、トークンを供給・更新するコールバックを渡すこともできます。両方指定した場合はコールバックが優先されます。
MapKitMap.tsxTypeScript · React
const state = useMapKitViewState({
token: import.meta.env.VITE_MAPKIT_TOKEN ?? '',
mapDesignType: MapKitMapDesign.Standard,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});動作確認
ここまで動けば完了
MapKit の地図が出れば完了です。
MapKitMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { MapKitMapDesign, MapKitMapView, useMapKitViewState } from '@mapconductor/react-for-mapkit';
const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });
export function MapKitMap() {
const state = useMapKitViewState({
token: import.meta.env.VITE_MAPKIT_TOKEN ?? '',
mapDesignType: MapKitMapDesign.Standard,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));
return (
<MapKitMapView state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</MapKitMapView>
);
}地図デザイン
MapKitMapDesign は MapKit のマップタイプに対応します。
MapKitMapDesign
Notes
Standard
標準の道路地図
Satellite
衛星画像
Hybrid
衛星画像+道路とラベル
MutedStandard
データを載せる下地向け
SatelliteFlyover / HybridFlyover
Flyover 対応地域向け
うまくいかないとき
地図が出ない
- トークンが空文字になっていないか確認します。
- トークンの有効期限が切れていないか確認します。長時間開く画面では authorizationCallback で更新してください。
React 18 でビルドできない
- このパッケージだけ React 19 以上を要求します。
プロバイダを切り替えるとフックの順序エラーが出る
- React はフックの呼び出し順を変えられません。プロバイダごとに小さなコンポーネントを作り、その中でそのプロバイダのフックを呼ぶ形にします。サンプルアプリの providers/ ディレクトリがこの構成です。
次に
iOS 版の MapKit プロバイダはキーも初期化も不要です。同じ画面コードのまま、プラットフォームごとに使い分けられます。