Giter Site home page Giter Site logo

uiwjs / react-amap Goto Github PK

View Code? Open in Web Editor NEW
359.0 6.0 60.0 277.78 MB

基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中。

Home Page: https://uiwjs.github.io/react-amap

License: MIT License

TypeScript 97.24% HTML 2.31% Less 0.25% Shell 0.06% CSS 0.14%
map amap react-amap maps react gaode typescript

react-amap's Introduction



高德地图 React 组件 logo

高德地图 React 组件

Buy me a coffee Build & Deploy Downloads Open in unpkg npm version Gitee Repo

这是一个基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中。除了必须引用的 APILoader/Map 组件外,我们目前提供了最常用的地图组件,能满足大部分简单的业务场景;如果你有更复杂的需求,或者觉得默认提供的组件功能不够,可以使用 Map 组件返回的地图实例,完全自定义一个地图组件,然后根据高德原生 API 做高德允许你做的一切事情。

文档实例预览: Github Web | Gitee Web

特性

  • ♻️ 自动加载高德地图 SDK(通过创建 Script 标签的形式加载),包括第三方 SDK。
  • 📚 使用 Typescript 编写,集成高德地图 SDK @type 声明文件(包括中文注释)。
  • ⚛️ 支持 React Hook 新增特性(需要 React 16.8+)。
  • 💝 不依赖任何第三方组件。
  • 📦 拆分成多个包,按需使用包。

安装

不依赖 uiw 组件库

# 集成了所有依赖包
npm install @uiw/react-amap --save

# 或者按需安装包
npm install @uiw/react-amap-map @uiw/react-amap-api-loader --save

v4 升级到 v5APILoader 主要是对 APILoader 做了升级,akay => akey

 <APILoader
-  akay
-  protocol
-  hostAndPath
-  callbackName
-  plugin
-  disableScripts
+  akey
+  plugins
+  AMapUI
+  Loca
>
  <Map style={{ height: 100 }} />
 </APILoader>

使用

Open in CodeSandbox

import ReactDOM from 'react-dom';
import React, { useEffect, useRef, Fragment } from 'react';
import { Map, APILoader, ScaleControl, ToolBarControl, ControlBarControl, Geolocation } from '@uiw/react-amap';

const Demo = () => (
  <div>
    <Map style={{ height: 300 }}>
      <ScaleControl offset={[16, 30]} position="LB" />
      <ToolBarControl offset={[16, 10]} position="RB" />
      <ControlBarControl offset={[16, 180]} position="RB" />
      <Geolocation
        maximumAge={100000}
        borderRadius="5px"
        position="RB"
        offset={[16, 80]}
        zoomToAccuracy={true}
        showCircle={true}
      />
    </Map>
    <Map style={{ height: 300 }}>
      {({ AMap, map, container }) => {
        return;
      }}
    </Map>
  </div>
);

const Mount = () => (
  <APILoader version="2.0.5" akey="a7a90e05a37d3f6bf76d4a9032fc9129">
    <Demo />
  </APILoader>
)
export default Mount

容器组件

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap 集成所有包 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-api-loader 加载 SDK (必须) bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-map 加载地图(容器) bundle size bundle size(gzip) npm version Open in unpkg

控件组件

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap-scale-control bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-control-bar-control bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-hawk-eye-control bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-map-type-control bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-tool-bar-control bundle size bundle size(gzip) npm version Open in unpkg

覆盖物

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap-marker 点标记 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-label-marker 点标记 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-text 文本标记 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-tile-layer 文本标记 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-polyline 折线 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-polyline-editor 折线编辑器 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-poly-editor 折线编辑器 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-circle 圆形 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-circle-marker 圆点标记 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-ellipse 圆形组件 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-rectangle 矩形 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-bezier-curve 贝塞尔曲线 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-polygon 多边形 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-polygon-editor 多边形 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-mass-marks 海量点 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-mouse-tool 绘制工具 bundle size bundle size(gzip) npm version Open in unpkg

信息窗体 & 右键菜单

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap-info-window 信息窗体 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-context-menu 右键菜单 bundle size bundle size(gzip) npm version Open in unpkg

服务

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap-geolocation 定位 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-weather 天气查询服务 bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-auto-complete 输入提示 bundle size bundle size(gzip) npm version Open in unpkg

其它

Package Bundle size(gzip) Version/unpkg
@uiw/react-amap-require-script bundle size bundle size(gzip) npm version Open in unpkg
@uiw/react-amap-types 类型定义 npm version Open in unpkg
@uiw/react-amap-utils bundle size bundle size(gzip) npm version Open in unpkg

开发

npm install         # Step 1: 安装依赖
npm run build       # Step 2: 编译所有包

npm run start       # 文档网站运行
npm run watch:amap  # 监听编译输出 js 文件, 监听编译输出 .d.ts 类型文件

相关连接

Contributors

As always, thanks to our amazing contributors!

Made with contributors.

License

Licensed under the MIT License.

react-amap's People

Contributors

berber1016 avatar gamecss avatar herberthe avatar hoshinosuzumi avatar i-tengfei avatar jaywcjlove avatar lantianyou avatar mashirozx avatar matuancc avatar peidongguo avatar renovate-bot avatar renovate[bot] avatar roading avatar starinecust avatar wj0990 avatar yaob421123 avatar zwtkito avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

react-amap's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Other Branches

These updates are pending. To force PRs open, click the checkbox below.

  • chore(deps): update peaceiris/actions-gh-pages action to v4

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/ci.yml
  • actions/checkout v4
  • actions/setup-node v4
  • peaceiris/actions-gh-pages v3
  • ncipollo/release-action v1
npm
package.json
  • @types/react-test-renderer ^18.0.0
  • @kkt/less-modules ^7.5.2
  • @kkt/ncc ^1.0.15
  • jest ^29.5.0
  • jest-watch-typeahead ^2.2.2
  • jest-environment-jsdom ^29.5.0
  • react ~18.2.0
  • react-dom ~18.2.0
  • react-test-renderer ^18.2.0
  • cross-env ~7.0.3
  • husky ^8.0.3
  • prettier ^3.0.0
  • lint-staged ^15.1.0
  • lerna ^8.0.0
  • tsbb ^4.1.14
  • node >=16.0.0
packages/amap/package.json
  • react >=16.14.0
  • react-dom >=16.14.0
packages/api-loader/package.json
  • @amap/amap-jsapi-loader ^1.0.1
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/auto-complete/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/bezier-curve/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/circle-marker/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/circle/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/context-menu/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/control-bar-control/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/ellipse/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/geolocation/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/hawk-eye-control/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/info-window/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/label-marker/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/map-type-control/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/map/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/marker/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/mass-marks/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/mouse-tool/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/poly-editor/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/polygon-editor/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/polygon/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/polyline-editor/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/polyline/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/rectangle/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/require-script/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/scale-control/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/text/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/tile-layer/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/tool-bar-control/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/types/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
packages/utils/package.json
  • react >=16.14.0
  • react-dom >=16.14.0
packages/weather/package.json
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • react >=16.14.0
  • react-dom >=16.14.0
website/package.json
  • @babel/runtime ^7.18.9
  • @uiw/react-github-corners ~1.5.3
  • @uiw/react-loader ^4.22.2
  • @uiw/react-markdown-preview-example ^2.0.0
  • @wcj/dark-mode ^1.0.14
  • react ~18.2.0
  • react-dom ~18.2.0
  • react-router-dom ^6.14.2
  • @kkt/less-modules ^7.5.2
  • @kkt/raw-modules ^7.5.2
  • @kkt/scope-plugin-options ^7.5.2
  • @types/react ^18.2.16
  • @types/react-dom ^18.2.7
  • kkt ^7.5.2
  • markdown-react-code-preview-loader ^2.1.7
  • react >=16.14.0
  • react-dom >=16.14.0

  • Check this box to trigger a request for Renovate to run again on this repository

Geolocation 组件的 `panToLocation` 属性无效

Geolocation 组件的 panToLocation 属性我看类型定义是 定位成功后是否自动移动到相应位置,但是将其设置为 false 后并未生效,依然是跳转到定位的位置。

另外一个不知道是不是问题的问题,当第一次定位完毕后,后面再次点击回调函数也不会走了(100% 复现)。

image

2gif

能补全下类型吗?

地图还有很多插件,比如AMap.DistrictSearch,能否直接用@types/amap-js-api,或者补全一下

declare namespace AMap {
  constructor(div: string | HTMLElement, opts?: MapOptions);
  // 省略。。。
  plugin(ControlType: Array<
      'AMap.Scale' |
      'AMap.HawkEye' |
      'AMap.MapType' |
      'AMap.ToolBar' |
      'AMap.ControlBar' |
      'AMap.OverView' |
      'AMap.Weather' |
      'AMap.HeatMap' |
      'AMap.MouseTool' |
      'AMap.PolyEditor' |
      'AMap.Geocoder' |
      'AMap.MarkerCluster'
      >, callBack: () => void): void;
}

页面调用地图离开页面后报 Error: Invalid Object: Pixel(NaN, NaN)

�路由离开页面就开始报 Error: Invalid Object: Pixel(NaN, NaN) 这个错误,我试了下用基础的组件也会报这个。
react version: 17.0.2
uwi-amap: 1.8.3

封装组件代码

import React, { useEffect } from 'react';
import { Map, APILoader, ToolBarControl, ControlBarControl, Geolocation, AutoComplete, Marker } from '@uiw/react-amap';
import { useState } from 'react';
import { useRef } from 'react';
import { request } from '@@/plugin-request/request';
import { AMapProps } from './data';
import './style.less';

const prod = process.env.NODE_ENV === 'production';
const AMapComponents: React.FC<AMapProps> = (props) => {
  const { webKey, serverKey, value, onChange, onClick } = props;
  const [input, setInput] = useState();
  const mapInputRef = useRef<any>(null);

  const zoomToAccuracyBool = () => {
    return !(value?.lng != 0 && value?.lat != 0);
  };

  useEffect(() => {
    setInput(mapInputRef.current);
  }, []);

  return (
    <APILoader akay={webKey}>
      <div className="amap-warp">
        <div className="amap-warp__input-warp">
          <input ref={mapInputRef} className="ant-input" type="text" placeholder="输入关键词搜索" />
          {input && (
            <AutoComplete
              input={input}
              onSelect={(opts: any) => {
                const { poi } = opts;
                const loc = poi.location;
                const { lat } = loc;
                const { lng } = loc;
                const address = poi.district + poi.address;
                onClick?.({ lng, lat, address });
                onChange?.({ lng, lat });
              }}
            />
          )}
        </div>
        <Map
          zoom={15}
          viewMode={'3D'}
          center={value?.lng && value.lat ? [value.lng, value.lat] : undefined}
          onClick={(e: AMap.MapsEvent) => {
            const { lnglat } = e;
            const lng = lnglat.getLng?.();
            const lat = lnglat.getLat?.();
            const url = `${prod ? 'https://restapi.amap.com' : ''}/v3/geocode/regeo?output=json&location=${lng},${lat}&key=${serverKey}&radius=1000&extensions=base&batch=false&roadlevel=1`;

            function regeo(requestUrl: string) {
              return request(requestUrl, {
                method: 'GET'
              });
            }

            regeo(url).then((res) => {
              if (res.infocode === '10000') {
                onClick?.({ lng: lng as number, lat: lat as number, address: res.regeocode.formatted_address });
                onChange?.({ lng, lat });
              }
            });
          }}
        >
          {value?.lng && value?.lat && <Marker visiable={true} position={[value.lng, value.lat]} />}
          <ControlBarControl offset={[10, 120]} position="RB" />
          <Geolocation
            // 是否使用高精度定位,默认:true
            enableHighAccuracy={true}
            // 超过10秒后停止定位,默认:5s
            timeout={10000}
            // 定位按钮的停靠位置
            position="RB"
            // 定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
            offset={[38, 85]}
            // 定位成功后是否自动移动到响应位置
            panToLocation={zoomToAccuracyBool()}
            // 定位成功后是否自动调整地图视野到定位点
            zoomToAccuracy={zoomToAccuracyBool()}
            // 是否显示定位点
            showMarker={zoomToAccuracyBool()}
          />
          <ToolBarControl offset={[38, 15]} position="RB" />
        </Map>
      </div>
    </APILoader>
  );
};

export default AMapComponents;

控制台完整错误:

maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1 Uncaught Error: Invalid Object: Pixel(NaN, NaN)
    at new Ho (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at Je.lngLatToContainer (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at ve.re._setStyle (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at ve.re.updateOverlay (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at ve.updateOverlay (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at fe.se.updateOverlay (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at fe.se.iy (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at Je.Bs.Yf (maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1)
    at maps?v=2.0&key=90b71656ec5d1935ecee211e1eb0b6f7&callback=load_amap_sdk:1

应该是离开页面组件没有销毁还在对坐标处理导致的一样。

ReferenceError: AMap is not defined

import {
    APILoader, ControlBarControl, Geolocation, Map, Marker, ScaleControl, ToolBarControl
} from '@uiw/react-amap';

        <APILoader akay="a7a90e05a37d3f6bf76d4a9032fc9129">
          <Map>
            <ScaleControl offset={[16, 30]} position="LB" />
            <ToolBarControl offset={[16, 10]} position="RB" />
            <ControlBarControl offset={[16, 180]} position="RB" />
            <Geolocation
              maximumAge={100000}
              borderRadius="5px"
              position="RB"
              offset={[16, 80]}
              zoomToAccuracy={true}
              showCircle={true}
            />
            <Marker
              title="北京市"
              position={new AMap.LngLat(116.405285, 39.904989)}
            />
          </Map>
        </APILoader>

WeChat70fecc3df7f2811c927814ae9a346ce9

本地react版本导致的问题

本地项目的react版本是16.9.0,下载完这个安装包之后,项目启动不起来了,请问这个问题怎么解决啊

关于Map组件自定义地图没有生效问题

作者你好,我在使用Map组件过程中,添加了defaultCurso参数,并且在高德开发平台已经自定义了地图了,添加参数后,没生效?请教一下是什么问题

Uncaught ReferenceError: AMap is not defined

compile没有问题,但是项目跑起来后,控制台会报这个错误

useEffect(()=>{
    //@ts-ignore: Unreachable code error
    AMap.plugin(['AMap.Geolocation'], ()=>{
      const instance = new AMap.Geolocation({});
      instance.getCurrentPosition((status, result)=>{
        console.log('result', status, result)
      })
    } )
    }, [])

image

React18版本需要提示更新

import { Map,Marker} from '@uiw/react-amap';
使用Map就会提示
Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more
希望能更新下React18版本
使用情况:

function App() {
  return (
    <Suspense fallback={<Spinner />}>
      <APILoader akay="">
            <Map 
             viewMode='3D'
             zoom='11.8'
             center={[10.126,30.236]}
             mapStyle= "amap://styles/darkblue"
             >
            </Map>
      </APILoader>
    </Suspense>
  );
}


const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
      <Provider store={store}>
        <App />
     </Provider>
);

Marker 组件实现轨迹回放功能

  • 问题
    利用导入的Marker组件,将Marker设置一个ref,获取Marker组件实例,然后调用marker.moveAlong(lineArr, 200)方法,无法调用。
// 初始化
<Map
  center={centerPostion}
  zoom={5}
  ref={(instance) => {
    if (instance && instance.map && !map) {
      setMap(instance.map)
    }
  }}
>
  <Marker
    position={[116.478935, 39.997761]}
    icon={'https://webapi.amap.com/images/car.png'}
    offset={new AMap.Pixel(-26, -13)}
    autoRotation={true}
    angle={90}
    ref={markerRef}
  />
  <Polyline showDir={true} strokeColor="#28F" strokeOpacity={1} strokeWeight={6} path={lineArr} />
  <Polyline ref={passedPolylineRef} strokeColor={'#AF5'} strokeWeight={6} />
</Map>



// 调用
const startAnimation = () => {
    if (markerRef.current?.marker) markerRef.current?.marker.moveAlong(lineArr, 200)
}
  • 错误提示:
Should implement AMap.moveAnimation plugin first.

看了一下官方示例: https://lbs.amap.com/demo/jsapi-v2/example/marker/replaying-historical-running-data
提示: // JSAPI2.0 使用覆盖物动画必须先加载动画插件
请问该如何实现呢?🙏

next 中报错 window is undefined

APILoader 的 defaultProps 中,从 window 上获取 protocol 会导致在 next ssr 时报 window is undefined。
能否添加一个 window 的判断再获取 protocol
image

Infowindow content的属性给DOM值

<InfoWindow
  offset={new AMap.Pixel(20, -60)}
  closeWhenClickMap
  autoMove={true}
  ref={cameraWindowRef}
  isCustom={true}
  content={<div className="title">
  <span>监控设备</span>
  </div>}
/>

image

如何显示默认地图类型

我这边想默认就显示卫星类型的地图
官网是这样的

aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 设置卫星地图模式,aMap是地图控制器对象。

但是我在这个项目里面只看到了AMap.MapType插件, 必须显示一个面板然后切换吗?

AutoComplete的例子onSelect出现错误

在用AutoComplete组件的时候,onSelect的prop找不到:

Type '{ input: any; onSelect: (opts: any) => void; }' is not assignable to type 'IntrinsicAttributes & AutoCompleteProps & RefAttributes'.
Property 'onSelect' does not exist on type 'IntrinsicAttributes & AutoCompleteProps & RefAttributes'

报错:未找到 AMap

页面渲染报错 ReferenceError: AMap is not defined

 <APILoader akay="a7a90e05a37d3f6bf76d4a9032fc9129">
      <div style={{ width: '100%', height: '300px' }}>
        <Map zoom={4}>
          <Marker
            visiable={showMarker}
            title="北京市"
            position={new AMap.LngLat(116.405285, 39.904989)}
          />
        </Map>
      </div>
    </APILoader>

报错未找到AMap~~~

关于在不同页面使用地图时<APILoader>的问题

目前搭建的一个项目中需要分别在两个不同的页面使用Map组件,请问这时应该怎么使用APILoader?参考说明中只给了一个页面下的使用方法。
项目框架:react+typescript+next.js

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Cannot find preset's package (github>whitesource/merge-confidence:beta)

调用省市区插件时的疑问


map2

如图,现在使用区级编码查询行政范围的时候,最终结果是可以出来的这个没问题,但是每次都带着大量的访问失败的链接
let placeSearch = new AMap.PlaceSearch({
pageSize: 50,
pageIndex: 1,
citylimit: true, // 仅搜索本城市的地名
city: areaCode, // 限制为只能搜索当前地区的位置
});
在这之后只要使用 placeSearch.search关键字来搜索一个点然后重新定位map的center的时候,首次加载就会出现大量如图访问失败的链接,这是为什么?

关于使用自定义组件的疑问

非常感谢作者贡献了amap的react封装。我在项目中使用时需要使用高德的路径规划功能,但是本库貌似没有提供相应的接口
捕获
在阅读说明书的过程中发现作者表示可以使用Map组件返回的地图实例进行任何原生API支持的事,但没有具体使用说明,不知作者是否可以以AMap.Driving为例指导下如何自定义使用高德原生API,万分感谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.