uiwjs / react-baidu-map

基于 React 封装的百度地图组件,支持 React Hook,帮助你轻松的接入地图到 React 项目中。
https://uiwjs.github.io/react-baidu-map
MIT License
225 stars 22 forks source link

typescript 中 Marker icon 属性无法传入 BMap.Symbol 对象 #262

Open xyxc0673 opened 2 years ago

xyxc0673 commented 2 years ago

示例代码:

const CustomMap = () => {
  const iconShapePoint = new BMap.Symbol(BMap_Symbol_SHAPE_POINT, {
    scale: 2, // 图标缩放大小
    fillColor: 'orange', // 填充颜色
    fillOpacity: 0.8, // 填充透明度
  });

  return (
    <Map zoom={5}>
      <Marker
        position={{ lng: 116.397128, lat: 39.916527 }}
        icon={iconShapePoint}
      />
    </Map>
  );
};

提示如下:

Type 'Symbol' is missing the following properties from type 'Icon': setImageSize, setImageOffset, setInfoWindowAnchor, setPrintImageUrl
jaywcjlove commented 2 years ago

@xyxc0673 Marker 不接受 Symbol 类型 的图标,下面是官方 api 截图

image

image

xyxc0673 commented 2 years ago

我在组件的文档里面看到这样的例子: https://codesandbox.io/s/m9p2nb 然后百度的示例中心有这样的例子: https://lbsyun.baidu.com/jsdemo.htm#c1_20

如果按照官方 API 的截图就有点奇怪了。

jaywcjlove commented 2 years ago

@xyxc0673 我看了官方示例确实有,但是是 2.0 的API

如果 3.0 的不知道是否删除,我建议你使用 // @ts-ignore 跳过 typescript 错误,看效果出来了没有

如果出来效果说明 API 还没有删除,那么你可以提交一个 pr 补充这个类型。 并标注过时 API

xyxc0673 commented 2 years ago

@jaywcjlove 通过 // @ts-ignore 的方式确实能够出来效果,说明 3.0 仍然支持传入 Symbol 我有空提交个 PR

kasimLZ commented 1 year ago

参考google的Marker的设计思路,百度应该是支持Symbol的。 按照百度的3.0参考Api的确存在问题。可能百度也没想好如何定义这块。但是功能的确是存在的。