plainheart / echarts-extension-amap

🚩 An AMap (https://lbs.amap.com) extension for Apache ECharts (https://github.com/apache/echarts)
https://github.com/plainheart/echarts-extension-amap
MIT License
251 stars 83 forks source link

有匹配高德API 2.0的计划吗? #34

Closed schzh closed 2 years ago

schzh commented 2 years ago

看示例都是匹配高德API 1.4.15,有匹配高德API2.0的计划吗?据说2.0改进还是比较大的。 直接引用试过,原来1.4.15正常的句子,2.0就出错了。 例如var opts={subdistrict:0,extensions:'base',level:'city'};var district=new AMap.DistrictSearch(opts); 这句在2.0下报错:对象不支持assign属性或方法 1.4.15正常,不通过这个模块直接使用高德API也正常

plainheart commented 2 years ago

从一开始都支持 2.0。高德这个区域搜索 DistrictSearch 需要单独引入插件,参考官方文档

schzh commented 2 years ago

应该不是这个问题,因为开始用v=1.4.15的时候就在初始连接上用plugin=AMap.DistrictSearch参数引入了,一直也是正常的,现在只是v=1.4.15改成v=2.0,其他的任何地方都没改,就出错了

plainheart commented 2 years ago

我在示例基础上改成 2.0 使用此插件没有出现问题。如果可以,建议提供下能复现的示例,我具体看下。

schzh commented 2 years ago
schzh commented 2 years ago

其实就是你的那个示例+他的那个示例的两句。那个2.0换成1.4.15则没有任何问题

schzh commented 2 years ago

IE11的错误是:SCRIPT438: 对象不支持“assign”属性或方法 eval code (60) (1,1318)

Chrome的错误是:maps?v=2.0&key=&plugin=AMap.DistrictSearch:1 Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame. at HTMLIFrameElement.t.onload (https://webapi.amap.com/maps?v=2.0&key= &plugin=AMap.DistrictSearch:1:501896)

plainheart commented 2 years ago

IE 这个应该是语法兼容性问题 不支持 Object.assign 函数 可以自行添加或者引入三方 polyfill 解决。另外高德地图2.0用了 webgl 和 worker,对浏览器要求会高些。 Chrome 那个错误应该是因为是从本地文件直接打开的,缺失 origin,起一个 http server 去运行就不会报这个错误了。

schzh commented 2 years ago

IE 这个应该是语法兼容性问题 不支持 Object.assign 函数 可以自行添加或者引入三方 polyfill 解决。另外高德地图2.0用了 webgl 和 worker,对浏览器要求会高些。 Chrome 那个错误应该是因为是从本地文件直接打开的,缺失 origin,起一个 http server 去运行就不会报这个错误了。

谢谢,Chrome 用 http server可以解决。 IE11引入polyfill确实可以解决不兼容Object.assign的问题,但是很快后面还是会出别的错误,例如 buildingLayer=new AMap.Buildings();amap.add(buildingLayer); 会出错:SCRIPT5007: 无法获取未定义或 null 引用的属性“Ha” maps (1,545996)

plainheart commented 2 years ago

这应该是高德地图2.0的兼容性问题了。2.0对浏览器版本要求较高,IE 下有些插件如果他们官方没有作兼容处理的话,肯定会有这类问题。建议用 Edge 或 Firefox、Chrome 运行。一定要兼容IE的话,我想只能保持用1.4.15版的了。

schzh commented 2 years ago

IE 这个应该是语法兼容性问题 不支持 Object.assign 函数 可以自行添加或者引入三方 polyfill 解决。另外高德地图2.0用了 webgl 和 worker,对浏览器要求会高些。 Chrome 那个错误应该是因为是从本地文件直接打开的,缺失 origin,起一个 http server 去运行就不会报这个错误了。

放弃兼容IE了,太繁琐,另外Chrome不使用http server也可以解决,只要加上参数"disable-web-security",Chrome也可以打开本地的html文件不出跨域错误