ジオコーダでカスタムレンダラ機能を使用
mapbox-gl-geocoderのカスタムhtmlレンダリング機能を使用して、ドロップダウンメニューの表示方法をカスタマイズします。
<!DOCTYPE html><html><head><meta charset="utf-8"><title>ジオコーダでカスタムレンダラ機能を使用</title><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"><link href="https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.css" rel="stylesheet"><script src="https://api.mapbox.com/mapbox-gl-js/v2.14.1/mapbox-gl.js"></script><style>body { margin: 0; padding: 0; }#map { position: absolute; top: 0; bottom: 0; width: 100%; }</style></head><body><script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.2/mapbox-gl-geocoder.min.js"></script><link rel="stylesheet" href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.2/mapbox-gl-geocoder.css" type="text/css"> <style>.geocoder-dropdown-item {padding: 5px;}.geocoder-dropdown-icon {margin-right: 10px;}.geocoder-dropdown-text {color: #5a3fc0;font-family: Arial, Helvetica, sans-serif;font-size: larger;}</style> <div id="map"></div> <script> // TO MAKE THE MAP APPEAR YOU MUST // ADD YOUR ACCESS TOKEN FROM // https://account.mapbox.com mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN';const map = new mapboxgl.Map({container: 'map',style: 'mapbox://styles/mapbox/streets-v9',center: [-79.4512, 43.6568],zoom: 13}); const geocoder = new MapboxGeocoder({accessToken: mapboxgl.accessToken,types: 'poi',// see https://docs.mapbox.com/api/search/#geocoding-response-object for information about the schema of each response featurerender: function (item) {// extract the item's maki icon or use a defaultconst maki = item.properties.maki || 'marker';return `<div class='geocoder-dropdown-item'><img class='geocoder-dropdown-icon' src='https://unpkg.com/@mapbox/maki@6.1.0/icons/${maki}-15.svg'><span class='geocoder-dropdown-text'>${item.text}</span></div>`;},mapboxgl: mapboxgl});map.addControl(geocoder);</script> </body></html>