小程序
小游戏
企业微信
微信支付
扫描小程序码分享
目前小程序里面的原生地图相比高德或者百度地图来说比较弱,甚至不能包含腾讯web地图的实用功能。
希望地图组件能尽快优化,实现如下功能:
1、当marker标记足够多时,可以以聚合点的方式展示(目前一次显示1000个marker会直接卡死)
2、在地图组件上可以覆盖view视图,实现较好的交互效果。
3、功能至少不要比腾讯web地图弱吧!
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
小程序可以通过webview控件调用H5网页可以实现,
大家可以尝试下易景空间地图导航 https://www.esmap.cn 可开发的SDK接口很多。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
聊胜于无而已,基本的坐标转换和事件都没有
这原生地图组件确实太弱了
我写了一个聚合功能,但是因为marker移动的动画有问题,效果不好,接下来打算测试一下高德地图的sdk
大佬可以给我参考参考吗
我不是大佬,很菜的,算法500行,用typescript写的所以要编译到js,但是我不会做持续集成,就半途而废了。不过可以给你讲下我这个做法的思路,这个算法是给移动端专门写的,支持地图缩放的同时分离聚合。基本思路如下,假设地图上所有的点都没有聚合,那么地图缩小的时候一定是最近的两个点聚合,然后继续缩小,再找最近的两个点聚合,直到全部合成一个点,你就有一棵树了,树的每个层级的聚合粒度是不一样的,接下来你可以用屏幕这个框在这颗树上截取需要展现的点,截取的时候可以做一些别的优化。实现其实不难,我的代码写得不好,就不拿出来献丑了,2000marker以内性能还可以接受,或许你能优化得更好,但是因为小程序地图marker动画有问题,效果其实不够直观,白浪费我三天时间。
记得用平衡二叉树做优化
第 1 点认为是合理的
第 2 点是哪些【地图组件上的】交互必须要 view 实现而 markers 实现不了的呢
在地图上存在多个markers时,点击marker后想在地图上覆盖一层view用来显示业务信息。因为map是原生组件,直接覆盖不上地图。要么点击marker进入下一级页面展示,要么就是通过减少map的当前高度,在底部显示view信息。但是这样的话,明显体验不好。
cover-view 可以覆盖在地图上
操作比较麻烦,而且cover-view中能加的组件太少。比如我想在cover-view里加个slider用来做滑动调节,我还得自己写个控件不成?
目前用 cover-view/cover-image 或者 markers,如果有更复杂的 UI 需求,可以等到 map 实现了同层渲染模式,解释参见https://developers.weixin.qq.com/community/develop/doc/000aa28d030f60a3c4183eecb5d801
map 的同层渲染模式还在开发和测试中。
毕竟不是app,不是浏览器
既然地图号称是原生组件,就应该有原生组件应该有的样子。这些都是刚需,小程序开发团队应该引起重视。
我估计应该是和小程序的定位有关,重点在“小”
别提原生组件了,就是个大坑
用原生组件和普通组件做交互,是坑的一逼啊,我觉得还不如web组件。按腾讯的说法,原生组件是模拟web组件来的。还不如让腾讯web地图直接接进来,多开放些接口来用。
小程序地图聚合目前能有其他路径实现吗?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
小程序可以通过webview控件调用H5网页可以实现,
大家可以尝试下易景空间地图导航 https://www.esmap.cn 可开发的SDK接口很多。
聊胜于无而已,基本的坐标转换和事件都没有
这原生地图组件确实太弱了
我写了一个聚合功能,但是因为marker移动的动画有问题,效果不好,接下来打算测试一下高德地图的sdk
大佬可以给我参考参考吗
我不是大佬,很菜的,算法500行,用typescript写的所以要编译到js,但是我不会做持续集成,就半途而废了。不过可以给你讲下我这个做法的思路,这个算法是给移动端专门写的,支持地图缩放的同时分离聚合。基本思路如下,假设地图上所有的点都没有聚合,那么地图缩小的时候一定是最近的两个点聚合,然后继续缩小,再找最近的两个点聚合,直到全部合成一个点,你就有一棵树了,树的每个层级的聚合粒度是不一样的,接下来你可以用屏幕这个框在这颗树上截取需要展现的点,截取的时候可以做一些别的优化。实现其实不难,我的代码写得不好,就不拿出来献丑了,2000marker以内性能还可以接受,或许你能优化得更好,但是因为小程序地图marker动画有问题,效果其实不够直观,白浪费我三天时间。
记得用平衡二叉树做优化
第 1 点认为是合理的
第 2 点是哪些【地图组件上的】交互必须要 view 实现而 markers 实现不了的呢
在地图上存在多个markers时,点击marker后想在地图上覆盖一层view用来显示业务信息。因为map是原生组件,直接覆盖不上地图。要么点击marker进入下一级页面展示,要么就是通过减少map的当前高度,在底部显示view信息。但是这样的话,明显体验不好。
cover-view 可以覆盖在地图上
操作比较麻烦,而且cover-view中能加的组件太少。比如我想在cover-view里加个slider用来做滑动调节,我还得自己写个控件不成?
目前用 cover-view/cover-image 或者 markers,如果有更复杂的 UI 需求,可以等到 map 实现了同层渲染模式,解释参见https://developers.weixin.qq.com/community/develop/doc/000aa28d030f60a3c4183eecb5d801
map 的同层渲染模式还在开发和测试中。
毕竟不是app,不是浏览器
既然地图号称是原生组件,就应该有原生组件应该有的样子。这些都是刚需,小程序开发团队应该引起重视。
我估计应该是和小程序的定位有关,重点在“小”
别提原生组件了,就是个大坑
用原生组件和普通组件做交互,是坑的一逼啊,我觉得还不如web组件。按腾讯的说法,原生组件是模拟web组件来的。还不如让腾讯web地图直接接进来,多开放些接口来用。
小程序地图聚合目前能有其他路径实现吗?