zoukankan      html  css  js  c++  java
  • 百度地图js 工具栏多边形框选范围内的标注

    目前用了一个比较笨的方法,暂时还没找到更好用的,上代码:

    创建一个工具栏

    var drawingManager = new BMapLib.DrawingManager(map, {
    isOpen: false, //是否开启绘制模式
    enableDrawingTool: true, //是否显示工具栏
    drawingToolOptions: {
    anchor: BMAP_ANCHOR_BOTTOM_RIGHT, //位置
    offset: new BMap.Size(-10, 30), //偏离值
    scale: 0.7
    },
    enableCalculate: true,
    circleOptions: styleOptions, //圆的样式
    polylineOptions: styleOptions, //线的样式
    polygonOptions: styleOptions, //多边形的样式
    rectangleOptions: styleOptions //矩形的样式
    });

    监听事件
    drawingManager.addEventListener('polygoncomplete', polygoncomplete);


    function polygoncomplete(e, overlay) {

    获取地图上所有标注
    var olay = map.getOverlays();
    var bbs = [];

    获取多边形各点坐标
    for (var t = 0; t < e.getPath().length; t++) {
    bbs.push(new BMap.Point(e.getPath()[t].lng,e.getPath()[t].lat));
    }

    创建折线
    var plo = new BMap.Polygon(bbs);
    for (var i = 0; i < olay.length; i++) {

    判断overlay类型
    if (olay[i].toString() == "[object Marker]") {

    创建坐标
    var pt = new BMap.Point(olay[i].point.lng, olay[i].point.lat);

    进行判断折线范围包含true,反之false,用overlay不管用,不清楚情况还要在研究研究
    var result = BMapLib.GeoUtils.isPointInPolygon(pt, plo);
    if(result==true){
    console.log("******************true");
    }

    }
    }
    }

  • 相关阅读:
    Android中库项目、jar包等的使用方法
    rman 使用catalog备份的演示
    好端端的项目重新运行的时候却不行了!!!已解决
    动物:河蚌
    动物:田螺
    动物-鱼:鳖
    动物-鱼:鳝鱼
    动物-鱼:柳根鱼
    动物-鱼:泥鳅
    动物-鱼:刺鳅
  • 原文地址:https://www.cnblogs.com/yeyuqian/p/12213856.html
Copyright © 2011-2022 走看看