当前位置:首页 > JavaScript

谷歌地图 js 实现

2026-04-07 12:50:16JavaScript

以下是关于如何使用 Google Maps JavaScript API 实现地图功能的详细方法:

获取 API 密钥

在 Google Cloud Platform 控制台中创建项目并启用 Google Maps JavaScript API。生成 API 密钥并确保启用计费功能(部分功能需付费)。

引入 API 脚本

在 HTML 文件中添加以下脚本标签,替换 YOUR_API_KEY 为实际密钥:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>

创建基础地图

在 HTML 中添加地图容器元素:

<div id="map" style="height: 400px; width: 100%;"></div>

初始化地图的 JavaScript 代码:

谷歌地图 js 实现

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    center: { lat: 37.7749, lng: -122.4194 }, // 旧金山坐标
    zoom: 12 // 缩放级别
  });
}

添加标记

在地图上添加标记点:

const marker = new google.maps.Marker({
  position: { lat: 37.7749, lng: -122.4194 },
  map: map,
  title: "San Francisco"
});

信息窗口

为标记添加点击弹出信息窗口:

const infowindow = new google.maps.InfoWindow({
  content: "<h3>San Francisco</h3><p>California, USA</p>"
});

marker.addListener("click", () => {
  infowindow.open(map, marker);
});

绘制形状

添加圆形覆盖物示例:

谷歌地图 js 实现

const cityCircle = new google.maps.Circle({
  strokeColor: "#FF0000",
  strokeOpacity: 0.8,
  strokeWeight: 2,
  fillColor: "#FF0000",
  fillOpacity: 0.35,
  map: map,
  center: { lat: 37.7749, lng: -122.4194 },
  radius: 2000 // 2公里半径
});

路线绘制

绘制两点间的折线:

const flightPath = new google.maps.Polyline({
  path: [
    { lat: 37.7749, lng: -122.4194 },
    { lat: 34.0522, lng: -118.2437 } // 洛杉矶坐标
  ],
  geodesic: true,
  strokeColor: "#FF0000",
  strokeOpacity: 1.0,
  strokeWeight: 2,
  map: map
});

事件监听

添加地图点击事件监听:

map.addListener("click", (event) => {
  console.log("Clicked at:", event.latLng.lat(), event.latLng.lng());
});

地理编码

将地址转换为坐标:

const geocoder = new google.maps.Geocoder();
geocoder.geocode({ address: "1600 Amphitheatre Parkway" }, (results, status) => {
  if (status === "OK") {
    map.setCenter(results[0].geometry.location);
    new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

自定义样式

应用自定义地图样式:

const styles = [
  {
    featureType: "water",
    elementType: "geometry",
    stylers: [{ color: "#e9e9e9" }]
  }
];
map.setOptions({ styles: styles });

注意事项

  1. 实际部署时需要限制 API 密钥的使用来源
  2. 移动端需添加 viewport meta 标签确保正常显示
  3. 复杂应用建议使用官方提供的 react、angular 等框架组件库
  4. 注意 API 的每日调用限额和费用计算

标签: 地图js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

css地图制作教程

css地图制作教程

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地理图形或交互式元素。以下是几种常见方法: 基础形状绘制 通过CSS的border、box-shadow和transf…