高德地图 Web JS API UI组件示例学习笔记(2)——矢量标注

自定义路径

使用SvgMarker自定义路径。

AMapUI.load(['lib/utils', 'ui/overlay/SvgMarker'], function (utils, SvgMarker) {
      if (!SvgMarker.supportSvg) {
        alert('当前环境不支持SVG');
      }
      function MyCustomPathShape(opts) {
        opts = utils.extend({
          //定义原始路径
          sourcePath: {
            //路径, 这里是一个简单的沙漏形状
            path: 'M0 0 L 10 0 L 0 10 L 10 10 z',
            //原始宽度
            width: 10,
            //原始高度
            height: 10
          }
        }, opts);

        MyCustomPathShape.__super__.constructor.call(this, opts);
      }

      //继承PathShape
      utils.inherit(MyCustomPathShape, SvgMarker.Shape.PathShape);

      //覆写部分方法
      utils.extend(MyCustomPathShape.prototype, {
        //针对定位基点的偏移,比如当前path的定位点在中心位置
        getOffset: function () {
          return [-this.getWidth() / 2, -this.getHeight() / 2];
        },
        //图形的视觉中心点,该位置有助于获取合适的文字位置
        getCenter: function () {
          return [this.getWidth() / 2, this.getHeight() / 2];
        }
      });

      var shape = new MyCustomPathShape({
          width: 60,
          strokeWidth: 2,
          strokeColor: 'blue',
          fillColor: 'green'
        }),
        shapeCenter = shape.getCenter();

      var marker = new SvgMarker(
        shape, {
          iconLabel: {
            innerHTML: 'A',
            //自定义文字样式
            style: {
              fontSize: '20px',
              top: shapeCenter[1] - 12 + 'px',
              left: shapeCenter[0] + 10 + 'px',
              right: 'auto',
              color: 'red'
            }
          },
          map: map,
          position: map.getCenter(),
          showPositionPoint: true
        });
    });

自定义形状

使用SvgMarker自定义形状。

AMapUI.load(['lib/utils', 'ui/overlay/SvgMarker'], function (utils, SvgMarker) {

      if (!SvgMarker.supportSvg) {
        alert('当前环境不支持SVG');
      }

      function MyCustomShape(opts) {

        opts = utils.extend({
          width: 100,
          height: 100,
          strokeWidth: 10,
          strokeColor: 'red'
        }, opts);

        MyCustomShape.__super__.constructor.call(this, opts);
      }

      //继承BaseShape
      utils.inherit(MyCustomShape, SvgMarker.Shape.BaseShape);

      //覆写部分方法
      utils.extend(MyCustomShape.prototype, {

        //返回svg的内部构造,
        getInnerHTML: function (params) {

          var p1 = '0,0',
            p2 = '0,' + params.height,
            p3 = params.width + ',' + params.height / 2;

          // 一个指向右侧的三角形
          return '<polygon points="' + [p1, p2, p3].join(' ') + '" ' +
            this.buildAttrStr(params, ['fill']) + '></polygon>';
        },
        getOffset: function () {
          //定位点在右侧中部位置,左上角的偏移:
          return [-this.getWidth(), -this.getHeight() / 2];
        }
      });

      var shape = new MyCustomShape({
        width: 100,
        height: 50,
        fill: 'green'
      });

      var marker = new SvgMarker(shape, {
        map: map,
        position: map.getCenter(),
        showPositionPoint: true
      });
    });

使用Iconfont(重点)

使用SvgMarker,将Iconfont作为图标。

<!-- 预加载iconfont的js -->
  <script src="./my-iconfont2.js?v=1.0.11"></script>
 AMapUI.loadUI(['overlay/SvgMarker'], function (SvgMarker) {
      if (!SvgMarker.supportSvg) {
        alert('当前环境不支持SVG');
      }
      var lngLats = getGridLngLats(map.getCenter(), 2, 4, 200, 200);
      var marker1 = new SvgMarker(
        new SvgMarker.Shape.IconFont({
          // 参见 symbol引用, http://www.iconfont.cn/plus/help/detail?helptype=code
          symbolJs: './my-iconfont.js',
          icon: 'icon-diansanmarker',
          size: 100,
          offset: [0, -100],
          fillColor: 'green'
        }), {
          map: map,
          position: lngLats[0],
          showPositionPoint: true
        });
    });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 想要在Vue中使用高德JS API UI组件示例轨迹,需要按照以下步骤进行操作: 1. 在Vue项目中安装高德地图的JavaScript APIJS API UI的依赖,可以使用npm或yarn命令进行安装。 2. 在Vue项目中引入高德地图的JavaScript APIJS API UI的依赖。可以在Vue的入口文件(如main.js)中使用import语句引入。 3. 在需要使用JS API UI组件的Vue组件中,使用组件的方式导入所需的组件。例如,如果需要使用轨迹组件,可以使用import语句导入AMapUI的Track组件。 4. 在Vue组件的模板中,使用导入的组件进行渲染。例如,在需要显示轨迹的地方使用<amap-track></amap-track>进行渲染。 5. 在Vue组件的JavaScript代码中,根据需要配置组件的属性和方法。可以通过提供的API文档查找所需的属性和方法,根据文档中的说明进行配置。 6. 在Vue组件的JavaScript代码中,使用高德地图的JavaScript APIJS API UI的相关方法进行地图的初始化和操作,例如将地图显示在指定的容器中,加载轨迹数据等。 7. 运行Vue项目,即可在界面上看到使用高德JS API UI组件示例轨迹的效果。 需要注意的是,为了使用高德地图APIUI组件,可能需要在高德地图开放平台注册并获取密钥。在开发过程中,可以在相关配置中使用密钥,以实现相关功能。 以上就是在Vue中使用高德JS API UI组件示例轨迹的基本步骤。具体的实现方式和配置可以根据自己的需求进行调整和扩展。 ### 回答2: 要使用高德 JS API UI 组件示例轨迹,首先需要安装相应的依赖包。可以在 Vue 项目的根目录下运行以下命令来安装: ``` npm install @amap/amap-jsapi-loader ``` 安装完成后,在需要使用轨迹示例组件中引入 AMapJSApiLoader: ```javascript import AMapJSApiLoader from '@amap/amap-jsapi-loader'; export default { data() { return { map: null }; }, mounted() { this.initMap(); }, methods: { async initMap() { // 加载高德地图 JS API const loader = new AMapJSApiLoader({ key: 'your-amap-api-key', version: '2.0', plugins: ['AMap.ToolBar'] }); // 加载完成后初始化地图 const AMap = await loader.load(); this.map = new AMap.Map('mapContainer', { // 地图选项配置 }); // 在地图上绘制轨迹 this.drawTrack(); }, drawTrack() { // 根据自己的需求,使用高德地图的服务和组件来绘制轨迹 // 示例:使用 AMap.Polyline 组件绘制折线 const polyline = new AMap.Polyline({ // 折线选项配置 }); polyline.setMap(this.map); } } } ``` 在上述代码中,我们首先在组件的 mounted 钩子函数中调用 initMap 方法来初始化地图。在 initMap 方法中,我们加载了高德地图JS API,并在加载完成后初始化了地图对象。然后我们调用 drawTrack 方法来绘制轨迹,在该方法中可以使用高德地图提供的服务和组件来绘制所需的轨迹效果。 需要注意的是,示例中的 `your-amap-api-key` 需要替换为自己申请的高德地图 API Key。另外,根据具体需求,可能需要根据高德地图API 文档来配置轨迹的样式、数据等参数。 ### 回答3: 要使用高德 JS API UI 组件示例轨迹,首先需要确保已经引入了高德地图 API 的 JavaScript库以及相关的插件。 在 Vue 中,可以在页面中使用 script 标签引入高德地图 API 的 JavaScript库,并在 mounted 钩子函数中初始化地图,并根据需要引入用于绘制轨迹的插件。 具体步骤如下: 1. 首先在 index.html 文件的 head 标签中引入高德地图 API 的 JavaScript库,例如: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=your_amap_api_key"></script> ``` 2. 在组件文件中,引入需要用到的高德地图插件,例如轨迹插件: ```javascript import 'AMap.MarkerClusterer'; import 'AMap.Marker'; // 其他需要的插件 ``` 3. 在 mounted 钩子函数中,初始化地图并使用相关的插件进行轨迹绘制,例如: ```javascript mounted() { // 初始化地图 const map = new AMap.Map('mapContainer', { center: [lng, lat], zoom: 10 }); // 绘制轨迹 const polyline = new AMap.Polyline({ path: [ // 轨迹点数组 [lng1, lat1], [lng2, lat2], [lng3, lat3], ... ], strokeColor: "#3366FF", // 线颜色 strokeOpacity: 1, // 线透明度 strokeWeight: 3, // 线宽度 map: map // 轨迹绘制在地图上 }); // 其他相关操作 } ``` 以上就是使用 Vue 框架中实现高德 JS API UI 组件示例轨迹的一般步骤。根据具体需求,还可以进一步自定义地图样式、轨迹样式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值