WebサイトにGoogleマップを埋め込む際、デザインの統一感を出すためにマップをグレースケール化したい場合があります。そのような場合、CSSのfilterプロパティを使えば簡単に実現可能です。本記事ではその具体的な方法と注意点を解説します。
Googleマップをグレースケール化する方法
Googleマップを埋め込むiframeタグに対してCSSのfilter: grayscale(1);を適用すると、マップ全体がグレースケールになります。以下に実装例を示します。
HTMLに直接指定する方法:
<div style="filter: grayscale(1);">
    <iframe
        src="https://www.google.com/maps/embed?pb=..."
        width="600"
        height="450"
        style="border:0;"
        allowfullscreen=""
        loading="lazy"
        referrerpolicy="no-referrer-when-downgrade">
    </iframe>
</div>
CSSでクラスを指定して適用する方法:
<div class="grayscale-map">
    <iframe
        src="https://www.google.com/maps/embed?pb=..."
        width="600"
        height="450"
        style="border:0;"
        allowfullscreen=""
        loading="lazy"
        referrerpolicy="no-referrer-when-downgrade">
    </iframe>
</div>
.grayscale-map {
    filter: grayscale(1);
}
上記のコードを使えば、埋め込んだマップが即座にグレースケール表示になります。
注意点
- ユーザビリティへの影響
 グレースケール化されたマップはデザイン性が向上する反面、視認性が低下し、ユーザーが目的地や周辺情報を判別しにくくなる可能性があります。特に、色分けされている地図情報(道路、施設、地形など)が重要な場合は注意が必要です。
- Googleマップの使用規約
 Googleマップの利用規約では、マップに対する改変に制限が設けられています。CSSのfilterを使用してデザインを変更することが規約違反に該当する可能性があります。そのため、Google Maps Platformを活用して公式に提供されるマップスタイリング機能を使用することを検討してください。
- ブラウザ互換性
 CSSのfilterプロパティは、比較的新しいブラウザではサポートされていますが、古いブラウザでは正しく動作しない場合があります。全てのユーザーに同じ体験を提供したい場合は、ブラウザ互換性を考慮する必要があります。