將 Google Maps JavaScript API 金鑰整合至 Webflow 專案

前置作業:準備您的 Google Cloud Platform 環境

在我們深入探討 Webflow 的設定之前,首要任務是確保您已擁有有效的 Google Maps JavaScript API 金鑰。此金鑰是 Google 用來驗證您請求並追蹤 API 使用量的憑證。

  1. 建立或登入 Google Cloud Platform 帳戶:前往 Google Cloud Platform。如果您尚未擁有帳戶,需要先行註冊。請注意,啟用 Google Maps Platform 相關 API 可能需要綁定有效的付款方式,雖然 Google 提供了每月免費的使用額度,但設定付款資訊是必要的步驟。
  2. 建立新專案或選取現有專案:在 Google Cloud Console 中,建立一個新的專案專門用於管理您的 API 金鑰,或選擇一個您既有的專案。為專案指定一個清晰的名稱(例如:「My Webflow Maps Project」)有助於後續管理。
  3. 啟用 Maps JavaScript API
    • 在左側導覽選單中,找到「API 和服務」>「程式庫」。
    • 在搜尋框中輸入「Maps JavaScript API」。
    • 點擊搜尋結果中的「Maps JavaScript API」。
    • 點擊「啟用」按鈕。如果系統提示您啟用相關的帳單帳戶,請依照指示完成。
  4. 產生 API 金鑰
    • 啟用 API 後,前往「API 和服務」>「憑證」。
    • 點擊頁面上方的「+ 建立憑證」。
    • 選擇「API 金鑰」。系統將會自動為您產生一組金鑰。請妥善保管此金鑰,切勿直接在公開的程式碼儲存庫中分享。
  5. 設定 API 金鑰限制(極其重要):為了防止您的金鑰被未經授權的第三方濫用,導致產生非預期的費用,強烈建議您設定金鑰限制。
    • 在「憑證」頁面找到您剛剛建立的 API 金鑰,點擊其名稱或右側的編輯圖示。
    • 在「應用程式限制」區塊,選擇「HTTP 參照網址 (網站)」。
    • 點擊「新增項目」,輸入您 Webflow 網站的網域。您應該包含所有可能的格式:
      • yourdomain.com/* (您的正式網域)
      • *.webflow.io/* (您的 Webflow 暫存網域,如果您需要在此測試)
      • 若有其他子網域也需要使用地圖,請一併加入。
      • 使用 * 作為萬用字元,表示該網域下的所有路徑皆可使用此金鑰。
    • 在「API 限制」區塊,選擇「限制金鑰」。
    • 在下拉選單中,僅勾選「Maps JavaScript API」。這樣可以確保此金鑰只能用於地圖顯示,無法用於其他 Google Cloud 服務。
    • 點擊「儲存」。

完成以上步驟後,您就擁有了一組安全且設定妥當的 Google Maps JavaScript API 金鑰,可以開始進行 Webflow 的整合工作了。

在 Webflow 中準備嵌入位置

接下來,我們需要在您的 Webflow 專案中指定地圖的顯示位置。

  1. 開啟 Webflow 設計器:登入您的 Webflow 帳戶並開啟您想要加入地圖的專案。
  2. 選擇目標頁面:導航至您希望顯示 Google Maps 的頁面,例如「聯絡我們」或「分店位置」頁面。
  3. 新增 Embed 元件
    • 在左側的「Add」面板 (快捷鍵 A) 中,向下滾動找到「Components」區塊。
    • 拖曳「Embed」元件到您頁面佈局中理想的位置。這個 Embed 元件將作為容納我們自訂地圖程式碼的容器。

實作 Google Maps JavaScript 程式碼

這是整合過程的核心步驟。我們將在 WebflowEmbed 元件中插入必要的 HTML 和 JavaScript 程式碼。

  1. 開啟 Embed Code Editor:點擊您剛剛添加到頁面上的 Embed 元件,會開啟一個程式碼編輯器視窗。
  2. 貼上 HTML 與 JavaScript 程式碼:將以下程式碼範本複製並貼到編輯器中。
<style>
  /* 設定地圖容器的基本樣式 */
  #map {
    height: 400px; /* 您可以自訂地圖的高度 */
    width: 100%;   /* 通常設定為 100% 寬度以填滿容器 */
  }
</style>

<!-- 用於顯示地圖的 HTML 容器 -->
<div id="map"></div>

<script>
  // 定義初始化地圖的函數
  function initMap() {
    // 設定地圖中心點的經緯度座標
    const mapCenter = { lat: 25.034, lng: 121.564 }; // 範例:台北 101 座標,請替換成您的目標位置

    // 設定地圖的初始縮放等級 (數字越大越放大)
    const mapZoom = 15; // 數值範圍通常在 0 (全球) 到 21 (極詳細) 之間

    // 建立新的地圖實例並將其附加到 ID 為 'map' 的 div 元素上
    const map = new google.maps.Map(document.getElementById("map"), {
      zoom: mapZoom,
      center: mapCenter,
      // 您可以在此處加入更多地圖選項,例如:
      // mapTypeId: 'satellite', // 設定地圖類型 (roadmap, satellite, hybrid, terrain)
      // disableDefaultUI: true, // 隱藏預設的 Google Maps 控制項
      // styles: [ ... ] // 在此加入自訂地圖樣式 JSON 陣列
    });

    // (可選) 在地圖中心點加上標記 (Marker)
    const marker = new google.maps.Marker({
      position: mapCenter,
      map: map,
      title: "我們的地點" // 標記的標題,滑鼠懸停時顯示
      // icon: 'URL_TO_YOUR_CUSTOM_ICON.png' // 您可以指定自訂圖標的路徑
    });

    // (可選) 為標記加上資訊視窗 (InfoWindow)
    /*
    const infowindow = new google.maps.InfoWindow({
      content: '<h3>公司名稱</h3><p>詳細地址<br>聯繫電話</p>' // 資訊視窗的 HTML 內容
    });
    marker.addListener('click', () => {
      infowindow.open(map, marker);
    });
    */
  }
</script>

<!-- 載入 Google Maps JavaScript API 並觸發 initMap 函數 -->
<!-- **極重要**: 將 YOUR_API_KEY 替換成您真實的 API 金鑰 -->
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

  1. 替換關鍵參數

    • YOUR_API_KEY:找到程式碼底部載入 API 的 <script> 標籤,將 YOUR_API_KEY 精確地替換成您在 Google Cloud Platform 產生的 API 金鑰。這是最關鍵的一步,若未替換或替換錯誤,地圖將無法載入。
    • mapCenter:修改 lat (緯度) 和 lng (經度) 的數值,設定為您希望地圖預設顯示的中心點。您可以使用 Google Maps 找到特定地點的經緯度 (在目標地點點擊右鍵即可看到)。
    • mapZoom:調整 mapZoom 的數值來設定地圖的初始縮放程度。數值越大,地圖顯示越詳細。您可以嘗試不同的數值,找到最適合您需求的縮放等級。
    • 標記 (Marker) 與資訊視窗 (InfoWindow):程式碼範例中包含了添加標記和資訊視窗的基礎結構(部分被註解掉)。您可以取消註解並修改 positiontitlecontent 等參數,以在地圖上標示您的具體位置並提供額外資訊。
  2. 儲存並關閉:完成程式碼修改後,點擊 Embed Code Editor 右上角的「Save & Close」按鈕。

樣式調整與進階自訂

雖然我們在程式碼中加入了基本的 #map CSS 樣式來設定高度和寬度,但您可能需要更進一步的自訂。

  • Webflow 樣式面板:您可以選取包含 Embed 元件的父層 Div Block,並使用 Webflow 的樣式面板來調整邊距 (Margins)、內距 (Padding) 或添加邊框等視覺效果。
  • 內部 CSS 樣式:直接在 Embed 元件的 <style> 標籤內添加更多 CSS 規則來自訂地圖容器的外觀。
  • Google Maps JSON 樣式:若想徹底改變地圖本身的視覺風格(例如顏色、道路顯示方式、標籤可見性等),可以使用 Google Maps Platform Styling Wizard (連結) 或手動編寫 JSON 樣式陣列,並將其添加到 new google.maps.Mapstyles 選項中。這能讓您的地圖完美融入網站的整體設計風格。

測試、發佈與問題排查

在完成所有設定後,進行徹底的測試至關重要。

  1. Webflow 預覽:在 Webflow Designer 中,地圖可能無法完全正常顯示,因為 API 的執行環境與實際網站不同。

  2. 發佈至暫存環境:點擊 Webflow 右上角的「Publish」,並選擇發佈到您的 .webflow.io 暫存網域。

  3. 實際測試:在瀏覽器中開啟您的暫存網域連結,檢查地圖是否已正確載入、顯示在預期位置、中心點和縮放是否正確,以及標記(如果有的話)是否可見。

  4. 開發者工具檢查:如果在載入地圖時遇到問題(例如地圖區塊顯示錯誤訊息或空白),請打開瀏覽器的開發者工具(通常按 F12),檢查「Console」(主控台) 分頁。常見的錯誤訊息包括:

    • ApiNotActivatedMapError:表示 Maps JavaScript API 未在 Google Cloud Platform 中啟用。
    • InvalidKeyMapErrorMissingKeyMapError:表示您的 API 金鑰無效、錯誤或遺漏。請仔細檢查您在程式碼中貼上的金鑰是否正確。
    • RefererNotAllowedMapError:表示您目前的網站網域未在 API 金鑰HTTP 參照網址限制清單中。請回到 Google Cloud Console 檢查並更新您的網域限制設定。
    • BillingNotEnabledMapError:表示您尚未為專案啟用帳單功能。
    • JavaScript 語法錯誤:檢查您複製貼上的程式碼是否有任何語法錯誤或遺漏。
  5. 正式發佈:確認在暫存環境中一切正常後,即可將網站發佈到您的正式網域。再次檢查正式網域上的地圖功能。

安全性最佳實踐回顧

再次強調,限制您的 API 金鑰是保護您帳戶安全和避免非預期費用的關鍵步驟。始終設定 HTTP 參照網址限制,並透過 API 限制僅允許金鑰用於 Maps JavaScript API。切勿將未經限制的金鑰直接嵌入到公開的程式碼中。

透過遵循本指南的詳細步驟,我們相信您能夠成功地將功能豐富且互動性強的 Google Maps 無縫整合至您的 Webflow 網站。這不僅能提升訪客的使用體驗,更有助於清晰傳達重要的地理位置資訊,進而強化您的線上業務形象。


提升您的 Webflow 網站體驗

Google Maps 整合至您的 Webflow 網站只是眾多提升數位體驗的策略之一。若您希望進一步優化網站效能、SEO 排名、使用者介面設計或探索更多 Webflow 的進階功能,Tenten.co 的專家團隊隨時準備為您提供協助。我們專注於打造高效能、高轉換率的 Webflow 網站,並提供全方位的數位解決方案。立即預約免費諮詢會議,讓我們一同探討如何將您的網站提升至新的高度。

立即預約免費諮詢會議