react使用百度地图

编程入门 行业动态 更新时间:2024-10-10 09:24:28

react使用百度<a href=https://www.elefans.com/category/jswz/34/1770718.html style=地图"/>

react使用百度地图

第一步、申请ak

具体请看官网
/

第二步、引入

public\index.html

  <scripttype="text/javascript"src="=1.0&type=webgl&ak=‘’C"></script>

第三步 、组件内使用

import React, { useEffect, useState } from 'react'
import './index.css'const BMapGL = window.BMapGL
console.log(BMapGL)
export default () => {const [mapC, setMapC] = useState(null)useEffect(() => {var map = new BMapGL.Map("container");setMapC(map)console.log("mapC", mapC, map)init(map)}, [])const init = (map) => {// 创建地图实例 var point = new BMapGL.Point(116.404, 39.915);// // 创建点坐标 map.centerAndZoom(point, 15);drawPoint(map)}//自定义点位const drawPoint = (m) => {const opt = {position: new BMapGL.Point(116.404, 39.915),offet: new BMapGL.Size(30, -30)}let labal = new BMapGL.Label(`<div class="cacle">自定义</div>`, opt)labal.setStyle({background: 'none',border: 'none'})m.addOverlay(labal)m.addEventListener('click', e => {console.log(e)})}return <div>地图<div id="container" style={{ height: '100vh' }}></div></div>
}

效果

antd-pro 使用百度地图

第一步
src/pages/document.ejs
中引入

<scripttype="text/javascript"src="=3.0&ak=">

组件中使用

import React, { useEffect, useState } from 'react';
import styles from './index.less';const { BMap } = window;
export default () => {// 自定义点位const drawPoint = (m) => {const opt = {position: new BMap.Point(116.404, 39.915),offet: new BMap.Size(30, -30),};const labal = new BMap.Label(`<div class=${styles.round_shape}>自定义</div>`, opt);labal.setStyle({background: 'none',border: 'none',});m.addOverlay(labal);m.addEventListener('click', (e) => {console.log(e);});};const init = (map) => {// 创建地图实例const point = new BMap.Point(116.404, 39.915);// // 创建点坐标map.centerAndZoom(point, 15);drawPoint(map);};useEffect(() => {const map = new BMap.Map('container');init(map);}, []);return (<div>地图01<div id="container" style={{ height: '100vh' }}></div></div>);
};

信息窗体

import React, { useEffect, useState } from 'react';
import styles from './index.less';
import jingdong from '../../assets/jingdong.png';const { BMap } = window;
// 信息窗口
const getInfoWindow = (map, item) => {const opts = {width: 250, // 信息窗口宽度height: 100, // 信息窗口高度title: item.name, // 信息窗口标题message: item.message,};const detailData = `<div>${item.message}<img style='width:100px;' src=${jingdong} alt=""/></div>`;const infoWindow = new BMap.InfoWindow(detailData, opts); // 创建信息窗口对象map.openInfoWindow(infoWindow, map.getCenter()); // 打开信息窗口
};
export default () => {// 自定义点位const drawPoint = (map, item) => {const opt = {position: new BMap.Point(item?.data_real_time.baidu_lat, item?.data_real_time.baidu_lng),offet: new BMap.Size(30, -30),};const labal = new BMap.Label(`<div class=${styles.round_shape}>${item.name}</div>`, opt);labal.setStyle({background: 'none',border: 'none',});labal.addEventListener('click', (e) => {console.log(e);getInfoWindow(map, item);});map.addOverlay(labal);};const init = (map) => {const dataList = [{id: 1001,name: '用户01',message: '用户01信息',data_real_time: {baidu_lat: 116.404,baidu_lng: 39.925,},},{id: 1002,name: '用户02',message: '用户02信息',data_real_time: {baidu_lat: 116.404,baidu_lng: 39.915,},},];dataList.forEach((item) => {// 创建地图实例const point = new BMap.Point(116.404, 39.928);// // 创建点坐标map.centerAndZoom(point, 15);const markerOpt = {title: '标题',};map.enableScrollWheelZoom(true);const marker = new BMap.Marker(new BMap.Point(item?.data_real_time.baidu_lat, item?.data_real_time.baidu_lng),markerOpt,);marker.addEventListener('click', (e) => {console.log(e);console.log('item.id', item.id);});map.addOverlay(marker);drawPoint(map, item);});};useEffect(() => {const map = new BMap.Map('container');init(map);}, []);return (<div>地图01<div id="container" style={{ height: '100vh' }}></div></div>);
};

更多推荐

react使用百度地图

本文发布于:2024-02-27 00:56:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704621.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:地图   react

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!