> For AI agents: the complete documentation index is available at /jp/core-sdk/map/web/llms.txt, the full documentation bundle is available at /jp/core-sdk/map/web/llms-full.txt.

# Change Log

## v10.3.0 (2026-09-24)

### 🎉 New

- Add `Map.getLatestVisitedOrdinal()`.
- Add `RoutePainter.setNavigationFilter()`.
- Add `IRouteStyle.outdoorLine.inactiveOpacity`.
- Add `IRouteStyle.traveledLine` for route style setting.
- Add `RoutePainter.renderProgress()` for traveledLine rendering.
- Add `IMapxusUtils.findNearestPathInstruction()`.

### 🐛 Fixes

- Fix disappearing symbols on overlapping routes.
- Fix indoor elements not being filtered after map drag.
- Fix floor not switching after dynamic switchFloorScope change.

### ⚠️ Deprecated

- Mark `IRouteStyle.outdoorLineColor` & `IRouteStyle.outdoorLineOpacity` deprecated, add `IRouteStyle.outdoorLine` new instead.
- Mark `IRouteStyle.dashedLineColor`, `IRouteStyle.dashedLineWidth` & `IRouteStyle.disableDashedLine` deprecated, add `IRouteStyle.dashedLine` new instead.
- Mark `IRouteStyle.indoorLineColor` & `IRouteStyle.inactiveRouteOpacity` deprecated, add `IRouteStyle.indoorLine` new instead.

## v10.2.1 (2026-07-13)

### 🐛 Fixes

- Fix "`Map.selectFloorById()` cannot work to switch floor of current building while building feature is out of bbox".

## v10.2.0 (2026-06-25)

### 🎉 New

- Add [VehicleType.ELEVATOR](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/10.2.0/enums/index.VehicleType.html#elevator) of `RouteService.search()` param.
- Part of search APIs upgraded to v6.
- Add [PresetLanguage.FRENCH](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/10.2.0/enums/index.PresetLanguage.html#french) and [PresetLanguage.ITALIAN](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/10.2.0/enums/index.PresetLanguage.html#italian).
- Support indoor map translating in FRENCH and ITALIAN language.

## v10.1.1 (2026-05-07)

### 🐛 Fixes

- Fix "map initial language might not be same with browser".

## v10.1.0 (2026-03-26)

### 🎉 New

- Add class [CategoryService](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/10.1.0/classes/index.CategoryService.html).
- Add function [Map.queryIndoorInfoByPoint](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/10.1.0/classes/index.Map.html#queryindoorinfobypoint).

### ⚠️ Deprecated

- Mark `PoisService.searchCategories` deprecated, use `CategoryService.searchCategories` instead.
- Mark `Map.queryIndoorFeaturesByPoint` deprecated, use `Map.queryIndoorInfoByPoint` instead.

## v10.0.1 (2026-03-09)

### 🐛 Fixes

- Fix "Tile resources use the old token(still valid) to fetch after token changed".
- Fix "Map cannot show after style request throw the error 401".
- Fix "When initializing a new map after destroying the old one during the app's lifetime, it throws PermissionError".

### 🚀 Optimization

- Update versions range of peerDependency `@mapxus/mapxus-auth-jp`.
- Use the new version format in request headers of map style resources.
- Logo control compatible with multiple environments.

## v10.0.0 (2025-10-30)

### ⚠️ Breaking Changes

- `@mapxus/mapxus-auth-jp@0.0.1` dependency required in APP.

| Class/Variable                                          | Removed                                       | New                                         |
| ------------------------------------------------------- | --------------------------------------------- | ------------------------------------------- |
| AccessControl                                           | AccessControl                                 |                                             |
| enum                                                    | AccessControlOrigin                           |                                             |
| IMapxusUtils                                            | getAccessToken                                |                                             |
|                                                         | getIdentifier                                 |                                             |
|                                                         | setGetTokenAsync                              |                                             |
|                                                         | setupTokenManager                             |                                             |
|                                                         | \_\_internal                                  |                                             |
| IMapOption                                              | appId                                         |                                             |
|                                                         | secret                                        |                                             |
|                                                         | platform                                      |                                             |
|                                                         | getTokenAsync                                 |                                             |
| VenuesService/BuildingsService/PoisService/RouteService | res.data.result                               | res.result                                  |
|                                                         | `error {response: {status, data: {message}}}` | `error {status, message}`                   |
| interface                                               | `TPromisePois<IPoi \| ISharedPoi>`            | `Promise<TPoiResponse<TPoi \| ISharedPoi>>` |
|                                                         | `TPromiseBuildings`                           | `Promise<TBuildingResponse<TBuilding>>`     |
|                                                         | `TPromiseVenues`                              | `Promise<TVenueResponse<TVenue>>`           |
|                                                         | `TPromiseRoute`                               | `Promise<IResponse<IResponseRoute>>`        |

### 🎉 New

- Used Mapxus Auth SDK for permission management.

### 🐛 Fixes

- `window.MapxusMapEvents` undefined in ESM lib format.

## v9.3.0 (2025-09-29)

### 🎉 New

- Add [mapOption.floorSwitchScope](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.3.0/interfaces/index.IMapOtherOptions.html#floorswitchscope) and [map.setFloorSwitchScope()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.3.0/classes/index.Map.html#setfloorswitchscope) to support switching floor by venue or global.

### 🐛 Fixes

- Fix "Failed to retrieve symbol layout during dynamic map theme switching".
- Fix typedoc script for missing `Utils` API.
- Declare style export path.

```js
// support style import
import "@mapxus/mapxus-map-jp/style"; // or import '@mapxus/mapxus-map-jp/dist/index.css'
```

### 🚀 Optimization

- Upgrade to typescript\@5.9.2.
- Improve selected history record and floors layering handle.
- Split dts chunks.

## v9.2.0 (2025-08-27)

### 🎉 New

- Add new themes [ThemeType.ROSE\_TEA](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.2.0/enums/ThemeType.html) , `ThemeType.PEAR_SORBET`, `ThemeType.CITY_WALK`, `ThemeType.MOCHA_MOUSSE`, `ThemeType.SECTION_DISPLAY_BY_COLOR` and `ThemeType.SECTION_DISPLAY_BY_CATEGORY`.
- Add [PoisService.searchByFloors()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.2.0/classes/PoisService.html#searchByFloors).
- Add optional params `floorIds` and `sharedFloorIds` of [IPoiSearchCustomizedOptions](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.2.0/interfaces/IPoiSearchCustomizedOptions.html).
- Add `mapOption.fitBounds`.
- Add optional parameter `fitBounds` of [map.selectFloorById()/selectSharedFloorById()/selectBuildigById()/selectVenueById()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/9.2.0/classes/Map.html#selectVenueById) options.
- Add `map.indoorClickSelection.enable()` and `map.indoorClickSelection.disable()`.
- Add `map.outdoorClickSelection.enable()` and `map.outdoorClickSelection.disable()`.
- Sections just show the upper layers when they are above POIs and show all layers when they are below POIs.

### 📝 Changes

- If you get the error like `Internal server error: Missing "./dist/index.css" specifier in "@mapxus/mapxus-map-jp" package`,\
  there's a temporary solution below, we will fix it in the next version.

```javascript
import "@mapxus/mapxus-map-jp/dist/index.css"; // delete this import

// import the css file via html link tag
<link
  href="https://web-sdk.mapxus.co.jp/prod/mapxus-map-9.2.0-jp.css"
  rel="stylesheet"
/>;
```

### 🐛 Fixes

- Fix "unselected floor did not keep its history".
- Fix "cannot change to outdoor while selecting shared level".

### 🚀 Optimization

- Improve export types.
- Improve the conditions(compatible with shared floors) to determine initialization outdoor.
- `node:events EventEmitter` replaced by `TinyEmitter`.

### ⚠️ Deprecated

- Mark themes `ThemeType.CHRISTMAS`, `ThemeType.HALLOWEEN`, `ThemeType.MAPPY_BEE`, `ThemeType.MAPXUS`, `ThemeType.LANDS_D`, and `ThemeType.COMMON` deprecated.
- Mark `PoisService.searchByFloor()` deprecated, use `PoisService.searchByFloors()` instead.
- Mark `IPoiSearchCustomizedOptions.floorId` deprecated.
- Mark `mapOption.fitBuildingBounds` deprecated, use `mapOption.fitBounds` instead.

## v9.1.0 (2025-07-17)

### 🎉 New

- `selectFloorById()/selectSharedFloorById()/selectBuildingById()/selectVenueById()` functions add optional parameter "animate", animation disabled in map initialization.
- Add `map.switchFloorByOrdinal()`.
- Add `map.queryIndoorFeaturesByPoint()`.
- Add `map.enableIndoorClickSelection` and `map.enableOutdoorClickSelection`.
- Add section layers display.
- Add parameter `sections?: ISection[]` of `map.onPoiClickListener()`.
- Add interface `IMapxusMap` of `MapxusMap.Map`.
- Add `map.setTheme()`.

### 🐛 Fixes

- Fix "Marker.updateData() cannot update marker data".
- Fix "Building might show 2 floors at the same time".

### ⚠️ Deprecated

- Mark `map.getIndoorFeaturesByCoordinates()` deprecated, use `map.queryIndoorFeaturesByPoint()` instead.
- Mark `map.switchTheme()` deprecated, use `map.setTheme()` instead.
- Mark `map.switchBuilding` and `map.switchOutdoor` deprecated.
- Mark `map.getIndoor()` deprecated.

## v9.0.0 (2025-07-01)

### ⚠️ Breaking Changes

| Class/Type       | Removed(properties/methods)                                                               | New alternatives                                                                         |
| ---------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Map              | floorSwitchMode                                                                           |                                                                                          |
|                  | getter `floor` returns "IFloor \| null"                                                   | getter `floor` returns "IFloor \| ISharedFloor \| null"                                  |
|                  | `onMapChangeListener(({floor: IFloor, ...}) => {})`                                       | `onMapChangeListener(({floor: IFloor &#124; ISharedFloor &#124; null, ...}) => {})`      |
|                  | `onMapClickListener(({floor: IFloor, ...}) => {})`                                        | `onMapClickListener(({floor: IFloor &#124; ISharedFloor &#124; null, ...}) => {})`       |
|                  | `onPoiClickListener((IPoiEvent) => {})`                                                   | `onPoiClickListener((IPoiClickEvent) => {})`                                             |
|                  | `onPointClickListener((IPointEvent) => {})`                                               | `onPointClickListener((IPointClickEvent) => {})`                                         |
| Enum             | FloorSwitchMode                                                                           |                                                                                          |
| Indoor           | floorSwitchMode                                                                           |                                                                                          |
| Layer id         | "custom-level-fill"                                                                       | `MapxusMap.ASSISTANT_LAYER_INDOOR_FLOORS  <br/> MapxusMap.ASSISTANT_LAYER_SHARED_FLOORS` |
| VenuesService    | searchByDistance(keywords, center, distance, offset, page)                                | `searchByDistance({center, distance, keywords?, offset?, page?})`                        |
|                  | searchByBbox(keywords, bbox, offset, page)                                                | `searchByBounds({bounds, keywords?, offset?, page?})`                                    |
|                  | searchByGlobal(keywords, offset, page)                                                    | `searchByGlobal({keywords?, offset?, page?})`                                            |
| BuildingsService | searchByDistance(keywords, center, distance, offset, page)                                | `searchByDistance({center, distance, keywords?, offset?, page?})`                        |
|                  | searchByBbox(keywords, bbox, offset, page)                                                | `searchByBounds({bounds, keywords?, offset?, page?})`                                    |
|                  | searchByGlobal(keywords, offset, page)                                                    | `searchByGlobal({keywords?, offset?, page?})`                                            |
| Type             | `IFloor {code: string &#124; null; id: string &#124; null; ordinal: string &#124; null;}` | `IFloor {code: string; id: string; ordinal: string;}`                                    |
|                  | `IMapClickEvent {floor: IFloor, ...}`                                                     | `IMapClickEvent {floor: IFloor &#124; ISharedFloor &#124; null, ...}`                    |
|                  | IPoiEvent                                                                                 | IPoiClickEvent                                                                           |
|                  | IPointEvent                                                                               | IPointClickEvent                                                                         |

### 🎉 New

- Upgrade `maplibre-gl@4.5.0` to `maplibre-gl@5.2.0`.
- Upgrade map default style to `mapxus_v7`.
- Venue/Building/POI search APIs upgrade to v5 for adding data about shared floor.
- RouteService API upgraded to v4 to add `on_shared_floor` property in response.
- Add "shared floor" concept.
- Add 2.5D layers(**It is recommended to use a new version of the browser, the old versions might not work well**).
- New overlap floors solution.
- Add `lineOffset` option of selected highlight.
- Class `RoutePainter` add option `outdoorLineOpacity`: `inactiveRouteOpacity` and `outdoorLineOpacity` will
  be 1 if the parameter is greater than 1, and it will be 0 if the parameter is less than 0.

### 🐛 Fixes

- Fix 'mapbox-gl-rtl-text plugin causes an error in react js strict mode'.
- Fix "outdoorLineOpacity(set to be not 1) will change to 1 when map switched outdoor".

### 🚀 Optimization

- Reduce indoor tiles filter frequency.
- Throw error when `IRouteSearchOptions.points` has empty point of `RouteService.search()`.
- Indoor sources are identified based on source ids starting with "indoor-".

### ⚠️ Deprecated

- Mark class `AccessControl` deprecated, use `getAccessToken(): Promise<{accessToken, expiredTime}>` instead.

## v8.5.0 (2025-05-22)

### 🎉 New

- Upgrade token API.
- Add [IMapOption.getTokenAsync](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.5.0/interfaces/IMapAccessWithToken.html) to support getting token from external function.
- Add global event listener `MapxusMapEvents.on("unauthorized", callback)` for invalid token.
- Add global event listener `MapxusMapEvents.on("initError", callback)` for invalid `poiId/floorId/buildingId/venueId` in initialization.

### 🐛 Fixes

- Add `mapbox-gl-rtl-text` plugin to support right-to-left languages for Arabic.
- Fix "click event will interrupt the map initialization process".
- Only convert the language of symbols in non-string text-fields.
- Fix the judgment of whether it is a PC browser or a mobile browser.

### 🚀 Optimization

- `appId` and `secret` must not be empty when provided.
- Improve indoor tiles filter frequency.

### ⚠️ Deprecated

- Mark class `AccessControl` deprecated, use [`getAccessToken(): Promise<{accessToken, expiredTime}>`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.5.0/functions/getAccessToken.html) instead.

## v8.4.0 (2025-03-25)

### 🎉 New

- Add `Map.platform` to get the corresponding platform token.
- Add multi-language `PresetLanguage.CHINESE_TRADITIONAL_TW`.
- Remove opacity setting of style layers 'mapxus-venue-fill/mapxus-building-line-color/mapxus-building-line'.

### 🐛 Fixes

- Fix 'token automatic renewal mechanism cannot work after machine sleep for a long time'.
- Fix 'Request headers have no identifier and sdkVersion while using API without indoor map'.
- Fix 'BuildingFilterControl cannot close the building list on mobile side'.

## v8.3.0 (2025-02-19)

### 🎉 New

- Add [Map.mapxusLogoEnabled](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.3.0/interfaces/IMapOption.html#mapxusLogoEnabled) to set whether to show the Mapxus logo or not.
- Add [Map.transformRequest](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.3.0/interfaces/IMapOption.html#transformRequest) and [Map.setTransformRequest()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.3.0/classes/Map.html#setTransformRequest) to allow users to customize the external request protocols.

### ⚠️ Deprecated

- Mark `ThemeType.MAPXUS_V2` deprecated(use `ThemeType.MAPXUS_DEFAULT` instead).
- Mark `Map.collapseCopyright` deprecated.

## v8.2.0 (2025-01-23)

### 🎉 New

- Class `RoutePainter` add option `outdoorLineOpacity`.

## v8.1.0 (2024-12-26)

### ⚠️ Breaking Changes

- The parameter `searchByOrientation` of `PoisService.searchByOrientation()` changed type `DistanceSearchType` to `OrientationDistanceSearchType`.

### 🎉 New

- Add class [AccessControl](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.1.0/classes/AccessControl.html) to get token individually.
- Mapxus map instance destroyed automatically and triggered `map.destroyed()` when called `maplibre.remove()`.
- Marker class allows other symbols to be overlapped on its icons.
- RoutePainter class allows other symbols to be overlapped on its marker icons.
- Add `PoisService.search()` to search POIs by all optional parameters.
- Add `BuildingsService.search()` to search buildings by all optional parameters.
- Add `VenuesService.search()` to search venues by all optional parameters.

## v8.0.0 (2024-11-20)

### ⚠️ Breaking Changes

- Remove the deprecated functions or properties which marked before version 7.10.0(v7.2.0 \~ v7.9.0).

### 🎉 New

- Map added new multi-languages: `fil|id|pt|th|vi|ar`.
- Add function [map.getLanguage()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.0.0/classes/Map.html#getLanguage).
- Building names of BuildingFilterControl follow with the map language.
- `RoutePainter` expanded route custom style settings.
  > - `new RoutePainter(maplibreMap)` -> [new RoutePainter(maplibreMap, routeStyle?)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.0.0/classes/RoutePainter.html#constructor).
  > - Add [RoutePainter.setStyle()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.0.0/classes/RoutePainter.html#setStyle) to update route style in real time.
- `Marker.setOpacityByVenue(venueId, ordinal)` -> [Marker.setOpacityByVenue(venueId, ordinal, inactiveOpacity?)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.0.0/classes/Marker.html#setOpacityByVenue).
  `Marker.setOpacityByBuilding(buildingId, ordinal)` -> [Marker.setOpacityByBuilding(buildingId, ordinal, inactiveOpacity?)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/8.0.0/classes/Marker.html#setOpacityByBuilding).

### ⚠️ Deprecated

- Mark these functions deprecated: `setMarkerIcons()`, `setMarkerIconSize()`, `setIndoorLineColor()`,
  `setOutdoorLineColor()`, `setDashedLineColor()`, `setBusLineColor()`. Use `setStyle()` instead.

## v7.11.0 (2024-10-31)

### 🎉 New

- Add function [MapxusMap.getIdentifier()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.11.0/functions/getIdentifier.html).

### 🚀 Optimization

- Token API added request header parameters: `identifier` and `sdkVersion`.
- `Marker.updateData()` added null value check of marker source.

## v7.10.0 (2024-09-30)

### ⚠️ Breaking Changes

- `PoisService.searchCategories()` added new search scope parameters `bounds` and `keywords`.
  > - parameter `{venueId?, buildingId?, floorId?}` -> `{venueId} | {buildingId} | {floorId} | {bounds, keywords?}`

### 🐛 Fixes

- Fix "fitBounds() would rotate the map while the bearing of map was not 0 in 'fitBuildingBounds: true' mode".

### ⚠️ Deprecated

- Mark the functions or properties deprecated which will not be applied in the coming version on SharedLevel conception:
  `map.floorSwitchMode`, `enum FloorSwitchMode`, `indoor.floorSwitchMode`.

## v7.9.0 (2024-08-29)

### ⚠️ Breaking Changes

- Remove the deprecated function `indoor.panToBuilding()` which marked in version 7.6.0.

### 🐛 Fixes

- Fix overlapped buildings display.
- Fix "RoutePainter cannot render the route when it starts with a connector".
- Fix "when init indoor by zoom 13.5 it gets a data error".
- Fix "when set `map.fitBuildingBounds` true map will pan to center after fit bounds".
- Fix "when call `map.selectFloorById(floorId, {dragPan: false})` building is missing floors data in `map.onMapChangeListener` callback".

### 🚀 Optimization

- Add [map.autoSelectBuilding](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.9.0/interfaces/IMapOption.html#autoSelectBuilding) to enable buildings to be automatically selected by panning them to the center of viewport.
- `map.selectVenueById()` selects the historical building first.

### ⚠️ Deprecated

- Mark `indoor.getLevelByPoint()` deprecated.
- Mark the parameter `buildingId` (`{points: {buildingId?}}`) of `RouteService.search()` deprecated.

## v7.8.0 (2024-07-25)

### ⚠️ Breaking Changes

- Upgrade `maplibre-gl@4.1.3` to `maplibre-gl@4.5.0`.
- Script and style are packaged separately.

```html
<!-- import in HTML head -->
<!-- dependent maplibre-gl -->
<script src="https://unpkg.com/maplibre-gl@4.5.0/dist/maplibre-gl.js"></script>
<link
  href="https://unpkg.com/maplibre-gl@4.5.0/dist/maplibre-gl.css"
  rel="stylesheet"
/>
<!-- mapxus map -->
<script src="https://web-sdk.mapxus.co.jp/prod/mapxus-map-7.8.0.js"></script>
<link
  href="https://web-sdk.mapxus.co.jp/prod/mapxus-map-7.8.0.css"
  rel="stylesheet"
/>
```

```javascript
// import by NPM package
import "maplibre-gl/dist/maplibre-gl.css";
import "@mapxus/mapxus-map-jp/dist/index.css";
import "your custom style.css";
import maplibregl from "maplibre-gl";
import { Map } from "@mapxus/mapxus-map-jp";

const maplibreMap = new maplibregl.Map({
  container: "map",
  zoom: 17,
});
const map = new Map({
  map: maplibreMap,
  appId: "your app id",
  secret: "your secret",
  buildingId: "tsuenwanplaza_hk_369d01",
});
```

### 🚀 Optimization

- [routePainter.setMarkerIcons()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.8.0/classes/RoutePainter.html#setMarkerIcons) allows to set the marker icons null.
- `searchByIds()` APIs of venue/building/poi service added empty string checking for parameters.

### ⚠️ Deprecated

- Mark class `Evented` exporting deprecated, it will be private.

## v7.7.2 (2024-07-15)

### 🐛 Fixes

- Fix `map.selectFloorById() could not change floor when target floor in the same building`.
- Fix `map.getIndoorFeaturesByCoordinates() could not find features`.
- Fix `map.switchTheme() could not work`.

## v7.7.1 (2024-06-28)

### 🚀 Optimization

- Update logo link.
- `map.selectVenueById()`,`map.selectBuildingById()` and `map.selectFloorById()` whether to pan the map decided by the optional parameter `{dragPan?: boolean}`, default to be "true".

## v7.7.0 (2024-06-19)

### ⚠️ Breaking Changes

- `map.selectVenueById(id, callback?)` -> [`map.selectVenueById(id, {dragPan?: boolean}?)`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/Map.html#selectVenueById).
- `map.selectBuildingById(id, callback?)` -> [`map.selectBuildingById(id, {dragPan?: boolean}?)`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/Map.html#selectBuildingById).
- `map.selectFloorById(id, callback?)` -> [`map.selectFloorById(id, {dragPan?: boolean}?)`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/Map.html#selectFloorById).
- `indoor.selectBuilding(feature, floorId?)` -> [`indoor.selectBuilding(feature, {floorId?, dragPan?}?)`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/Indoor.html#selectBuilding).
- `map.disableFloorControl()` -> [map.floorSelector.disable()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/FloorSelectorHandler.html#disable).
- `map.enableFloorControl()` -> [map.floorSelector.enable()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/FloorSelectorHandler.html#enable).

### 🚀 Optimization

- `map.selectVenueById()`, `map.selectBuildingById()` and `map.selectFloorById()` add optional
  parameter `{dragPan?: boolean}` to set whether to pan the map while changing the selected indoor state;
- `map.selectVenueById()` default to center selected building if it is not in bbox.
- `map.selectBuildingById()` default to center selected building if it is not in bbox.
- `map.selectFloorById()` default to center selected building if the selected floor is not in bbox.
- [map.getFeaturesById()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.7.0/classes/Map.html#getFeaturesById) add an optional parameter `{layerIds?: string[], filter? (feature) => boolean}` to help filter features.
- Improve tiles filter and render.
- Update collapsed-copyright style.

### ⚠️ Deprecated

| Class         | Deprecated Function(still support) | Recommended Function     |
| ------------- | ---------------------------------- | ------------------------ |
| Map           | setFloorSelectorStyle()            | floorSelector.setStyle() |
| FloorsControl | setVisibility()                    | setEnabled()             |

## v7.6.0 (2024-05-30)

### ⚠️ Breaking Changes

- Upgrade to `maplibre-gl@4.1.3`.
  > If you import maplibre-gl package by script tag, you must upgrade them to version 4.1.3

```html
<script src="https://unpkg.com/maplibre-gl@4.1.3/dist/maplibre-gl.js"></script>
<link
  href="https://unpkg.com/maplibre-gl@4.1.3/dist/maplibre-gl.css"
  rel="stylesheet"
/>
```

> **By NPM, there's no need to upgrade maplibre-gl manually**, it will be upgraded automatically by upgrading @mapxus/mapxus-map-jp.

### 🐛 Fixes

- Fix 'click outside level but inside building fill could not exit indoor in mask-building-mode'.
- Fix 'token API retry in loop when 401'.
- Fix the building list layout of BuildingFilterControl after changed position.

### 🚀 Optimization

- Add parameter type `null` for [map.setSelectedBuildingBorderStyle()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#setSelectedBuildingBorderStyle) to remove the selected building border style.
- Add [IMapOption?.language](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IMapOption.html#language), [map.setLanguage()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#setLanguage), [MapxusMap.convertBrowserLangToPresetLang()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/functions/convertBrowserLangToPresetLang.html) and [MapxusMap.VERSION](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/variables/VERSION.html).
- Improve the map initialization process.
  > - Add [map.switchBuilding](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#switchBuilding) event handler
  > - Add [map.switchOutdoor](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#switchOutdoor) event handler
  > - Add [map.floorSelector](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#floorSelector) event handler
  > - Add [map.buildingSelector](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#buildingSelector) event handler
  > - Add [map.getMaplibre()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#getMaplibre)
  > - Add [map.setLanguage()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#setLanguage)
  > - Add [map.setOutdoorMapShown()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#setOutdoorMapShown)
  > - Add [map.setFloorSelectorStyle()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Map.html#setFloorSelectorStyle)
  > - Add [IMapOption.floorSelectorStyle](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IMapOption.html#floorSelectorStyle)
  > - Add [IMapOption.floorSelectorEnabled](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IMapOption.html#floorSelectorEnabled)
  > - Add [IMapOption.buildingSelectorEnabled](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IMapOption.html#buildingSelectorEnabled)
  > - Add [IMapOption.outdoorMapShown](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IMapOption.html#outdoorMapShown)
  > - Add enum [PresetLanguage](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/enums/PresetLanguage.html)
  > - Add type [IFloorSelectorStyle](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/interfaces/IFloorSelectorStyle.html)
  > - Add [indoor.setAllowBuildingSwitch()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#setAllowBuildingSwitch)
  > - Add [indoor.setAllowOutdoorSwitch()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#setAllowOutdoorSwitch)
  > - Add [indoor.setOutdoorMapShown()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#setOutdoorMapShown)
  > - Add [indoorOption.outdoorMapShown](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#constructor)
  > - Add [indoorOption.startWithIndoorView](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#constructor)
  > - Add [indoorOption.maskNonSelectedAreas](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#constructor)
  > - Add [indoorOption.selectedBuildingBorderStyle](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/Indoor.html#constructor)
  > - Add [buildingFilterControl.setVisibility()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/BuildingFilterControl.html#setVisibility)
  > - Add [buildingFilterControl.changePosition()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/BuildingFilterControl.html#changePosition)
  > - Add optional argument `buildingSelectorEnabled` of [BuildingFilterControl.constructor()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/BuildingFilterControl.html#constructor)
  > - Add [floorsControl.changePosition()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/FloorsControl.html#changePosition)
  > - Add [floorsControl.position](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/FloorsControl.html#position)
  > - Add [floorsControl.enabled](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/FloorsControl.html#enabled)
  > - Add optional argument `options` of [FloorsControl.contructor()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.6.0/classes/FloorsControl.html#constructor)
- Improve indoor resources request transformation.
- Upgrade default map style to `mapxus_mims2_v5`.
- Upgrade `PoisService.searchByIds()` API to v4.
- Upgrade venue and building service APIs to v4.
- Upgrade `maplibre-gl@4.1.1` to `maplibre-gl@4.1.3`.
- Remove `@types/geojson` from dependencies.
- Enable font settings from the map's style for CJK characters.
- Remove the hard-coded style of POI name.

### ⚠️ Deprecated

| Class                 | Deprecated Function(still support)                                                             | Replacement Function                                      |
| --------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Map                   | enableSwitchBuilding()                                                                         | switchBuilding.enable()                                   |
|                       | disableSwitchBuilding()                                                                        | switchBuilding.disable()                                  |
|                       | enableSwitch()                                                                                 | switchOutdoor.enable()                                    |
|                       | disableSwitch()                                                                                | switchOutdoor.disable()                                   |
|                       | getMap()                                                                                       | getMaplibre()                                             |
|                       | enableFloorControl()                                                                           | floorSelector.enable(), floorSelector.setPosition()       |
|                       | disableFloorControl()                                                                          | floorSelector.disable()                                   |
|                       | enableBuildingSelector()                                                                       | buildingSelector.enable(), buildingSelector.setPosition() |
|                       | disableBuildingSelector()                                                                      | buildingSelector.disable()                                |
|                       | transformPoiTextFieldLanguage()                                                                | setLanguage()                                             |
|                       | setOutdoorLayerHidden()                                                                        | setOutdoorMapShown()                                      |
|                       | setFloorsControlStyle()                                                                        | setFloorSelectorStyle()                                   |
|                       | IMapOption.enableFloorControl                                                                  | IMapOption.floorSelectorEnabled                           |
|                       | IMapOption.enableBuildingSelector                                                              | IMapOption.buildingSelectorEnabled                        |
|                       | IMapOption.hiddenOutdoor                                                                       | IMapOption.outdoorMapShown                                |
|                       | IMapOption.floorsControlStyle                                                                  | IMapOption.floorSelectorStyle                             |
|                       | optional parameter `callback` of selectFloorById(), selectBuildingById() and selectVenueById() |                                                           |
| PoisService           | IPoi.description                                                                               |                                                           |
| Type                  | TPresetLanguage                                                                                | PresetLanguage                                            |
|                       | IFloorsControlStyle                                                                            | IFloorSelectorStyle                                       |
| Const                 | MapxusMap.version                                                                              | MapxusMap.VERSION                                         |
| Indoor                | enableSwitchBuilding()                                                                         | setAllowBuildingSwitch()                                  |
|                       | disableSwitchBuilding()                                                                        | setAllowBuildingSwitch()                                  |
|                       | enableSwitch()                                                                                 | setAllowOutdoorSwitch()                                   |
|                       | disableSwitch()                                                                                | setAllowOutdoorSwitch()                                   |
|                       | setMaskNonSelectedAreas()                                                                      | indoorOption.maskNonSelectedAreas                         |
|                       | hiddenOutdoorLayer()                                                                           | setOutdoorMapShown()                                      |
|                       | indoorOption.isHiddenOutdoor                                                                   | indoorOption.outdoorMapShown                              |
|                       | indoorOption.isInitialIndoor                                                                   | indoorOption.startWithIndoorView                          |
|                       | the optional parameter `callback` of panToBuilding()                                           |                                                           |
| FloorsControl         | setPosition()                                                                                  | changePosition()                                          |
|                       | the optional parameter `callback` deprecated of switchByOrdinal()                              |                                                           |
| BuildingFilterControl | setLayoutHidden()                                                                              | setVisibility()                                           |
|                       | moveBuildingFilter()                                                                           | changePosition()                                          |
|                       | second optional argument `position` of `constructor()`                                         |                                                           |



## v7.5.0 (2024-03-27)

### ⚠️ Breaking Changes

- Add RoutePainter.setMarkerIcons() for setting all marker icons.

  > - Upgrade maplibre-gl\@3.6.2 to maplibre-gl\@4.1.1.
  > - RoutePainter.setFromMarkerIcon(icon, callback?) -> async [`setMarkerIcons({from: icon})`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/RoutePainter.html#setMarkerIcons).
  > - RoutePainter.setToMarkerIcon(icon, callback?) -> async `setMarkerIcons({to: icon})`.
  > - Marker.setIconImage(icon, callback?) -> async [setIcon(icon)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/Marker.html#setIcon).
  > - Remove deprecated Marker.setIconImageUrl().
  > - Remove RoutePainter.setFromMarkerIcon().
  > - Remove RoutePainter.setToMarkerIcon().

- RouteService.search() supports route planning query for more than 2 points.

  > - RouteService.search(fromCoordinate, toCoordinate, fromFloorId, toFloorId, fromBuildingId, toBuildingId, vehicle, locale?, toDoor?)\
  >   -> [`search({points, vehicle?, locale?, toDoor?})`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/RouteService.html#search)

- RoutePainter.render() supports route drawing of more than 2 points.

  > - RoutePainter.render(path, fromCoordinate, toCoordinate)\
  >   -> [render(path, markerLocations)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/RoutePainter.html#render)

- Update the parameters of PoisService.searchByDistance().

  > - searchByDistance(category, center, distance, offset, page)\
  >   -> [`searchByDistance({center, distance, keywords?, offset?, page?})`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByDistance)

- Update types.
  > - WayFindingVehicleType -> VehicleType.
  > - IPresetLanguage -> TPresetLanguage.
  > - IMultiLangName -> IMultilingualName.
  > - IMultiLangAddress -> IMultilingualAddress.

### 🚀 Optimization

- Upgrade axios\@1.6.2 to axios\@1.6.7.
- Add [PoisService.searchByOrientation()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByOrientation).
- Add [PoisService.searchByFloor()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByFloor).
- Add [PoisService.searchByBounds()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByBounds).
- Add [PoisService.searchByVenue()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByVenue).
- Add [PoisService.searchByBuilding()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByBuilding).
- Add [Marker.updateData()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/Marker.html#updateData) to update marker features.
- Add [Marker.on(eventKey, callback)](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/Marker.html#on) to add mouse event listeners.
- Add [VehicleType.EMERGENCY](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/enums/VehicleType.html) for route search.
- Add [PoisService.searchByCategory()](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.5.0/classes/PoisService.html#searchByCategory).

### ⚠️ Deprecated

| Class        | Deprecated Function(still support) | Recommended Function |
| ------------ | ---------------------------------- | -------------------- |
| PoisService  | searchByBbox                       | searchByBounds       |
|              | searchByVenueId                    | searchByVenue        |
|              | searchByBuildingId                 | searchByBuilding     |
|              | searchOrientation                  | searchByOrientation  |
| Marker       | onEventListener                    | on                   |
| RouteService | parameter 'toDoor' of search()     |                      |



## v7.4.0 (2024-01-31)

### 🐛 Fixes

- Fix 'FloorsControl has different style in Windows Chrome'.
- Fix the triggering timing of 'map.renderComplete'.
- Fix 'map.enableFloorControl cannot work by calling in map.renderComplete callback'.

### 🚀 Optimization

- PoisService.searchOrientation's parameter 'distanceSearchType' added a new type 'Gate'.
- Throw verification error.
- Improve 'layer ids start with "mapxus-venue" and "mapxus-building" not be filtered'.
- Update properties of venue/building/POI API responses.
- Add public function 'map.getIndoorFeaturesByCoordinates'.
- Class Marker allows icon overlap and be visible.
- Upgrade maplibre-gl\@3.5.1 to maplibre-gl\@3.6.2.
- Upgrade axios\@1.3.4 to axios\@1.6.2.
- Remove default zoom value of map.

## v7.3.0 (2023-11-23)

### 🐛 Fixes

- Fix 'Cannot select building while map container is not started from left-top corner'.

### 🚀 Optimization

- Add optional parameters [fitBuildingBounds](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.3.0/interfaces/IMapOption.html#fitBuildingBounds) and [boundsPadding](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.3.0/interfaces/IMapOption.html#boundsPadding) of map constructor to make the selected building boundaries fit the screen.
- Upgrade to maplibre-gl\@3.5.1.
- Update token while it is expired and make error request retries.
- ⚠️ **Breaking**: API [PoisService.searchOrientation](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.3.0/classes/PoisService.html#searchOrientation) parameters changed.
  > Note: Search priority: ordinal > floorId > buildingId
  > `searchOrientation(angle, buildingId, center, distance, distanceSearchType, floorId?) -> searchOrientation({center, angle, distance, buildingId?, floorId?, ordinal? distanceSearchType?})`

## v7.2.0 (2023-09-26)

### 🎉 New

- Add map constructor optional parameter [`{maskNonSelectedAreas}`](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/interfaces/IMapOption.html) to set non-selected areas masked.
- Add API [PoisService.searchByVenueId](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/PoisService.html#searchByVenueId).
- Layered display of overlapping elements on different floors.

### 🐛 Fixes

- Fix "'map.switchTheme' function could not work".

### 🚀 Optimization

- Improve text overflow style of FloorControl item.
- Remove deprecated functions of v7.1.0, refer to the changelog of v7.1.0 for details.
- ⚠️ **Breaking**: Enrich the API [PoisService.searchCategories](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/PoisService.html#searchCategories) parameters.
  > Note: 'venueId', 'buildingId' and 'floorId' are all optional, but at least one needs to be provided.
  > `searchCategories(buildingId, floorId) -> searchCategories({venueId, buildingId, floorId})`
- ⚠️ **Breaking**: Add [marker.onEventListener](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/Marker.html#onEventListener) a return object with 'offEventListener' function.
  > `const {offEventListener} = marker.onEventListener(eventKey, callback)`
- ⚠️ **Breaking**: Add optional 'callback' parameter to [marker.setIconImage](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/Marker.html#setIconImage).
  > `setIconImage(url) -> setIconImage(url, callback?)`
- ⚠️ **Breaking**: Add optional 'callback' parameter to async functions [setFromMarkerIcon](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/RoutePainter.html#setFromMarkerIcon) and [setToMarkerIcon](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.2.0/classes/RoutePainter.html#setToMarkerIcon) of RoutePainter.
  > Note: The callback function will be fired after the icon download completed (if you set an external URL).
  > `setFromMarkerIcon(url) -> setFromMarkerIcon(url, callback?)`
  > `setToMarkerIcon(url) -> setToMarkerIcon(url, callback?)`
- ⚠️ **Breaking**: ️Mark the following functions deprecated, they **will be removed soon after**, you'd better update relative usages in your apps from this version:

| Class  | Deprecated Function | Replacement Function |
| ------ | ------------------- | -------------------- |
| Map    | getFeature          | getFeaturesById      |
| Indoor | getFeature          | getFeaturesById      |
| Marker | setIconImageUrl     | setIconImage         |



## v7.1.0 (2022-09-05)

### 🎉 New

- Add [RoutePainter](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/RoutePainter.html) class.
- Add [BuildingsService.searchByFloorId](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/BuildingsService.html#searchByFloorId) API.
- Add [map.selectVenueById](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/Map.html#selectVenueById) function.
- Add map constructor option parameter 'floorsControlStyle'.
- Add function 'map.onPointClickListener'.
- Add map constructor option parameter 'floorSwitchMode' to filter tiles by venue or building, default value is 'floorSwitchMode.SWITCHED\_BY\_VENUE'.
- Add map constructor option parameter 'selectedBuildingBorderStyle' and function 'setSelectedBuildingBorderStyle' to set building highlight border style.
- Add venue APIs.
- New BuildingFilter control style.
- New FloorsSelector style.
- ⚠️ **Breaking**: [Marker](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/Marker.html) class refactoring.
  > New class, changes involving almost all methods, please refer to the relevant API documentation.

### 🐛 Fixes

- Fix "'map.enableFloorControl' function could not work".

### 🚀 Optimization

- Change functions 'Evented.on' and 'Evented.off' parameter types from 'any' to 'string'.
- Improve 'map.selectBuilding' parameter type to be 'IFeatureBuilding|null', for changing map outdoor by parameter 'null'.
- Upgrade to maplibre-gl\@3.1.0.
- Upgrade to typescript\@5.1.6.
- ⚠️ **Breaking**: Change the last required parameter 'floor' to optional 'floorId' of [PoisService.searchOrientation](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/PoisService.html#searchOrientation).
  > `searchOrientation(angle, buildingId, center, distance, distanceSearchType, floor) -> searchOrientation(angle, buildingId, center, distance, distanceSearchType, floorId?)`
- ⚠️ **Breaking**: Change [map.onPoiClickListener](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/Map.html#onPoiClickListener) and [map.onMapClickListener](https://map-service.mapxus.co.jp/dpw/api/v1/api/digitalMap/web/7.1.0/classes/Map.html#onMapClickListener) callback parameters.
  > `onPoiClickListener(({coordinate, poi, building, floorName, floorId, ordinal}) => void) -> onPoiClickListener(({coordinate, poi, venue, building, floor}) => void)`
  > `onMapClickListener(({coordinate, floorName, floorId, ordinal, building}) => void) -> onMapClickListener(({coordinate, floor, building, venue}) => void)`
- ⚠️ **Breaking**: Change map.onVenueChangeListener callback parameters.
  > `onVenueChangeListener(({venueId, ordinal}) => void) -> onVenueChangeListener(({feature}) => void)`
- ⚠️ **Breaking**: Change map.onFloorChangeListener callback parameters.
  > `onFloorChangeListener(({floor, ordinal, feature}) => void) -> onFloorChangeListener((feature) => void)`
- ⚠️ **Breaking**: Upgrade Route service API to V3 and change the parameter floorName to be floorId.
  > `search(fromCoord, toCoord, fromFloorName, toFloorName, fromBuildingId, toBuildingId, vehicle, locale) -> search(fromCoord, toCoord, fromFloorId, toFloorId, fromBuildingId, toBuildingId, vehicle, locale)`
- ⚠️ **Breaking**: Mark the following functions deprecated, they **will be removed next version**, you'd better update relative usages in your apps from this version:

| Class       | Deprecated Function                                                      | Replacement Function                                                            |
| ----------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| Map         | `constructor parameter {floor}`                                          | `constructor parameter {floorId}`                                               |
|             | floors                                                                   | building.properties.level\_names                                                |
|             | currentFloor                                                             | floor.code                                                                      |
|             | ordinal                                                                  | floor.ordinal                                                                   |
|             | venueId                                                                  | venue.properties.id                                                             |
|             | selectBuilding                                                           |                                                                                 |
|             | switchBuilding                                                           | selectBuildingById                                                              |
|             | switchFloor                                                              | selectFloorById                                                                 |
|             | hiddenOutdoorLaye                                                        | setOutdoorLayerHidden                                                           |
|             | onFloorChangeListener                                                    | onMapChangeListener                                                             |
|             | onBuildingChangeListener                                                 | onMapChangeListener                                                             |
|             | onVenueChangeListener                                                    | onMapChangeListener                                                             |
|             | `onIndoorPoiListener(({lngLat, originalEvent, point, feature}) => void)` | `onPoiClickListener(({coordinate, poi, building, floorName, floorId}) => void)` |
| Indoor      | floors                                                                   | building.properties.level\_names                                                |
|             | ordinals                                                                 | building.properties.ordinals                                                    |
|             | buildingId                                                               | building.properties.id                                                          |
|             | currentFloor                                                             | floor.code                                                                      |
|             | ordinal                                                                  | floor.ordinal                                                                   |
|             | refLevel                                                                 | floor.id                                                                        |
|             | venueId                                                                  | venue.properties.id                                                             |
|             | goToBuilding                                                             | panToBuilding                                                                   |
|             | switchFloor                                                              | switchFloorByOrdinal                                                            |
|             | getBuildingByPoint                                                       |                                                                                 |
| PoisService | searchCategory                                                           | searchCategories                                                                |



## v6.0.0 (2023-05-23)

### 🎉 New

- Add a new copyright style and open it through the new property Map.collapseCopyright.
- New style of the default copyright logo.
- FloorSelector shows the building levels and filter indoor tiles by building ordinal and venue id.
- Highlight the selected floor of selected building.

### 📝 Changes

- Update logo website.
- The indoor/outdoor judgment based on the building-line changed to be based on level-fill.
- Hidden building only cannot be selected by clicking on the map, but it is always allowed by calling Map.switchBuilding or Map.selectBuilding.
- Map added public function "onVenueChangeListener".
- The callbacks of Map.onFloorChangeListener and Map.switchFloor added a new parameter "ordinal".
- Map add getters 'ordinal' and 'venueId' for route path filtering \[by venue id and ordinal].
- Npm package excluded the devDependencies.
- Update to maplibre-gl@>=2.1.9.
- Update to axios\@1.3.4.

### 🐛 Fixes

- Fix the bug that the specified building floor cannot be initialized through Map.floor.
- Current floor did not be selected when map render by POI.
- Some API request header's identifier are undefined.
- Function 'disableSwitch' for indoor-outdoor would make indoor-indoor disabled.

## v5.4.1 (2023-03-10)

### 🐛 Fixes

- Venue floors allowed same floor names(different ordinal) then switch by ordinal.

## v5.4.0 (2023-01-17)

### 🎉 New

- Update token API;
- Update building/poi/theme API to version 3.

### 🐛 Fixes

- Service APIs did not throw errors.

## v5.3.0 (2022-12-28)

### 🎉 New

- When the indoor map is initialized,
  only the floor corresponding to the minimum absolute value of the venue ordinal is displayed.
- Filter the features in the whole venue based on the venue ordinal when switching floors.
- Event listeners 'onMapClickListener', 'onIndoorPoiListener', 'onBuildingChangeListener', 'onFloorChangeListener' of
  class Map, 'onFloorClick' of FloorsControl, 'onPointClick' of Poi return an object with a function 'unsubscribe' for
  removing listeners.

### 🐛 Fixes

- Event listeners 'onMapClickListener', 'onIndoorPoiListener', 'onBuildingChangeListener', 'onFloorChangeListener' of
  class Map, 'onFloorClick' of FloorsControl, 'onPointClick' of Poi, could not be called in multiple places.
- BuildingFilter has the same buildings.

## v5.2.0 (2022-08-31)

### 🎉 New

- Reset to v5.0.1.
- Indoor map shows connector and restroom's POI name.

## v5.1.0 (2022-08-04)

### 🎉 New

- Indoor map shows connector and restroom's POI name.

## v5.0.2 (2022-07-15)

### 🎉 New

- Indoor map just shows the building with ordinal = 0 by default;
  The buildings with no ordinal = 0 just show their building lines by default.
- The parameter 'map: Map' is required when new a marker instance.
- Markers can be filtered automatically after building or floor changed.

### 🐛 Fixes

- Fix the bug that it still could get the coordinates, floor and building after removed the markers.

## v5.0.1 (2022-07-12)

### 🎉 New

- Mapxus Map adds Japanese and Korean languages.

## v5.0.0 (2022-07-01)

### 🎉 New

- Mapxus Map renders indoor map by showing all the ground floors by default.

## v4.1.4 (2022-03-23)

### 📝 Changes

- Remove the deprecated functions 'getDefaultPosition' of floorsControl, 'getDefaultPosition' and 'setPosition' of buildingFilterControl.

### 🐛 Fixes

- Fix the bug that the selected floor was not in the center of the floorsControl when init.

## v4.1.3 (2022-03-09)

### 🐛 Fixes

- Fix the bug that the value of floorsControl.position is not updated after 'map.enableFloorControl(position)' called.

## v4.1.2 (2022-02-23)

### 📝 Changes

- Whether the Mapxus map is indoor or outdoor depends on:
  it is currently indoor, based on levelFill; currently outdoor, based on buildingLine.
- Remove the node placeholders for the floorControl and buildingFilter when they are not visible.

### 🐛 Fixes

- Fix the bug which of the init values of map options 'enableFloorControl' & 'enableBuildingSelector'.
- Fix the bug that enableFloorControl will lost the floorChangeEventListener while enableFloorControl:false at init.

## v4.1.1 (2022-01-05)

### 🐛 Fixes

- Fix the bug of initial floor(while the building's ordinals are all minuses).

## v4.1.0 (2021-12-22)

### 📝 Changes

- Add a custom layer `custom-level-fill` which always on the map with 'fill-opacity: 0'.
- Filter building-line layer by setting its fill-opacity 0 or 1.
- FloorControl & BuildingSelector added the new property `position` and `enabled`.
- Users set FloorControl(/BuildingSelector) enabled by `enableFloorControl(/enableBuildingSelector)()`
  replace of `disableFloorControl(/disableBuildingSelector)() & enableFloorControl(/enableBuildingSelector)()`.
- Mark `getDefaultPosition` of FloorControl & BuildingSelector deprecated, alternative by the new property `position`.
- Mark `setPosition` of BuildingSelector deprecated, alternative by `enableBuildingSelector(position)`.
- Mapxus map can return to the floor which previously visited in switching buildings.

### 🐛 Fixes

- Users can select other buildings normally after initializing the building error.

## v4.0.0 (2021-11-09)

### 📝 Changes

- MapLibre GL replaces Mapbox GL as the new map rendering engine of MapxusMap.
