当前位置:   article > 正文

【快应用】如何实现地图位置点实时刷新_basemap 更新点坐标

basemap 更新点坐标

【关键词】

map、markers-callout

【问题背景】

快应用map组件中,地图上点的文本弹框不能跟随点的位置变化。

如下图所示,地图上点的位置坐标已发生变化,但是文本弹框还显示在原位置,并没有显示在新位置。

cke_399.png

【问题分析】

需要对地图上点的文本弹框做显示设置(把markers-callout子属性的display设置为always),并对坐标位置变化做回调弹出文本显示处理。

【解决方法】

具体步骤如下:

1、将markers第一个点的值赋给一个临时变量。

2、对临时变量进行需要的修改。

3、将修改后的临时变量重新赋值给markers。

4、通过数据绑定实现文本弹框跟随显示。

解决代码如下:

  1. <template>
  2. <div>
  3. <map style="width:{{width}}; height:{{height}}" scale="{{scale}}" markers="{{markers}}" ontap="tap"></map>
  4. </div>
  5. </template>
  6. <script>
  7. const COORDTYPE = 'wgs84'
  8. const MARKER_PATH = '/Common/logo.png'
  9. const TTJ_WGS = {
  10. latitude: 39.9073728469,
  11. longitude: 116.3913445961,
  12. coordType: COORDTYPE
  13. }
  14. const QIANMEN_WGS = {
  15. latitude: 39.898899,
  16. longitude: 116.39196216700361,
  17. coordType: COORDTYPE
  18. }
  19. export default {
  20. private: {
  21. scale: 17,
  22. markers: [
  23. {
  24. id: 1,
  25. width: '50%',
  26. height: '50%',
  27. latitude: TTJ_WGS.latitude,
  28. longitude: TTJ_WGS.longitude,
  29. coordType: TTJ_WGS.coordType,
  30. iconPath: MARKER_PATH,
  31. width: '50px',
  32. callout: {
  33. content: '景点',
  34. padding: '5px 5px 5px 5px',
  35. borderRadius: '20px',
  36. textAlign: 'left',
  37. display: 'always'
  38. }
  39. }
  40. ]
  41. },
  42. tap: function () {
  43. //地图中显示点位的callout跟随位置变换和相应信息的变化而显示
  44. let marker = this.markers[0];
  45. marker.latitude = QIANMEN_WGS.latitude;
  46. marker.longitude = QIANMEN_WGS.longitude;
  47. marker.callout.content = '前门';
  48. this.markers = [marker];
  49. }
  50. }
  51. </script>

  欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/291995
推荐阅读
相关标签
  

闽ICP备14008679号