web开发如何使用高德地图API(四)通过AMap.Marker自定义标点

本文详细介绍如何使用高德开放平台的Web端(JSAPI)进行地图应用开发,包括注册开发者账号、创建应用、获取Key、引入API及UI组件库、显示基础地图、添加与删除Marker等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说两句:

  • 以下内容除了我自己写的部分,其他部分在高德开放平台都有(可点击外链访问)。
  • 我所整理的内容以实际项目为基础希望更有针对性的,更精简。
  • 点击直奔主题。

准备工作:

  • 首先,注册开发者账号,成为高德开放平台开发者
  • 登陆之后,在进入「应用管理」 页面「创建新应用」
  • 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 

拿到key之后,在页面引入高德API和UI组件库以及相关CSS文件

<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
<script src="http://cache.amap.com/lbs/static/es5.min.js"></script>
<script src="http://webapi.amap.com/maps?v=1.4.3&key=3853mark的key不告诉你138eacc13d55806d&plugin=AMap.PlaceSearch,AMap.AdvancedInfoWindow"></script>
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>

 

显示基础地图所用到的HTML和JS

<body>
<div id="container"></div>
</body>
<script type="text/javascript">
    var map = new AMap.Map('container', {
        resizeEnable: true,
        zoom:11,
        center: [116.397428, 39.90923]//默认的地图中心经纬度
    });
</script>

 

引入高德地图工具包js文件

<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>

 

在map中指定的经纬度上描点

//创建一个Marker实例:
var markerTemp = new AMap.Marker({
    position : [lng,lat],
offset : new AMap.Pixel(-21,-21),//偏移量,默认以marker左上角位置为基准点
map : map
});
// 自定义点标记内容(已设置头像显示在描点位置为例)
var markerContent = document.createElement("div");
var markerImg = document.createElement("img");
markerImg.className = "markerlnglat";//设置描点img的统一样式
markerImg.src = path + data[0][i].userId.headSculpture;//设置图片url
markerContent.appendChild(markerImg);
markerTemp.setContent(markerContent);
 

在已有地图上添加与删除Marker

// 将创建的点标记添加到已有的地图实例:
map.add(marker);

// 移除已创建的 marker
map.remove(marker);

点击查看Marker的全部属性和方法

 监听Marker的点击事件

  下回再说

转载于:https://www.cnblogs.com/meng-ma-blogs/p/9285571.html

在 React 中集成高德地图并实现自定义标记点击跳转页面的功能,主要步骤包括: ### 1. 安装依赖 首先需要安装 `@amap/amap-jsapi-loader` 包来加载高德地图的 JS API。 ```bash npm install @amap/amap-jsapi-loader --save ``` ### 2. 创建地组件 创建一个新的 React 组件用于展示地,并添加对高德地图的支持。这里假设我们已经获得了有效的 [API Key](https://lbs.amap.com/api/javascript-api/summary)。 ```jsx import React, { useEffect } from 'react'; import AMapLoader from '@amap/amap-jsapi-loader'; const MapComponent = () => { const mapRef = useRef(null); // 初始化地实例 useEffect(() => { let marker; AMapLoader.load({ key: "your_api_key", // 替换为您的key值 version: "2.0", plugins: [] }).then((AMap) => { var map = new AMap.Map(mapRef.current, { zoom: 15, center: [116.397428, 39.90923], // 设置初始中心点坐标,默认北京天安门广场 }); // 添加一个简单的Marker作为示例位置标志物 marker = new AMap.Marker({ position: [116.397428, 39.90923], title: '天安门' }); // 将 Marker 加入到地上显示出来 map.add(marker); // 监听 Marker 的 click 事件处理函数 AMap.event.addListener(marker, 'click', function() { window.location.href="/detail"; }) }); }, []); return <div id="container" ref={mapRef} style={{height:'500px'}} />; }; export default MapComponent; ``` 上面的例子展示了如何通过监听 Marker 对象上的 `"click"` 事件触发路由导航至 `/details` 路径下的详情页。当然实际应用中你还需要结合自身的业务需求调整具体的逻辑如传递参数等操作。 请注意,在真实环境中应当将敏感信息(例如API密钥)妥善保管并在发布前替换掉占位符内容;此外还需考虑跨域资源共享(CORS),以及可能存在的性能优化等问题。 --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值