javascript百度地图多个多边形点击事件,个别的无法响应

我想实现点击每个多边形,提示响应的索引,但是点击正常提示,有的就不提示。实在搞不清楚什么问题。
这是我的代码

 <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
    </style>
    <!--<script type="text/javascript" src="json.js" ></script>-->
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=zga15SpUh7sMrZkXaBKicRBshkN3bKtR"></script>
    <title>添加行政区划</title>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map("allmap");
    var pointArray = [];
    map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5);
    map.enableScrollWheelZoom();
    var oneDev = ["北京市","上海市","天津市","重庆市","黑龙江","辽宁省","吉林省","河北省","河南省","湖北省","湖南省","山东省","山西省","陕西省","安徽省","浙江省","江苏省","福建省","广东省","海南省","四川省","云南省","贵州省","青海省","甘肃省","江西省","台湾","广西","西藏","新疆","宁夏","内蒙古","香港","澳门"];
    var colorArr = ['#ff541c','#1cecff','#3cff1c','#ff1c47',,'#000'];
    boundary();
    function boundary(){
        for(var j in oneDev){
            (function(index){
                var bdary = new BMap.Boundary();
                bdary.get(oneDev[index], function(rs){  //获取行政区域
                    //map.clearOverlays();        //清除地图覆盖物       
                    var count = rs.boundaries.length; //行政区域的点有多少个
                    for (var i = 0; i < count; i++) {
                        var color = colorArr[Math.floor(Math.random()*3+0)];
                        var ply = new BMap.Polygon(rs.boundaries[i], {fillColor:color,strokeWeight: 2, strokeColor:'#000'}); //建立多边形覆盖物
                        map.addOverlay(ply);  //添加覆盖物
                    }  
                    //map.setViewport(pointArray);    //调整视野  
                    ply.addEventListener('click',function(){
                        console.log(index)
                    })
                });
            })(j)
        }
    }
</script>

1个回答

覆盖物事件放到for循环里面,要不你的ply只是给返回的最后一个多边形添加事件而已,如果点击的不是最后一个当然无法触发事件

                     for (var i = 0; i < count; i++) {
                        var color = colorArr[Math.floor(Math.random() * 3 + 0)];
                        var ply = new BMap.Polygon(rs.boundaries[i], { fillColor: color, strokeWeight: 2, strokeColor: '#000' }); //建立多边形覆盖物
                        map.addOverlay(ply);  //添加覆盖物
                                                ///////////////////事件放里面
                        ply.addEventListener('click', function () {
                            console.log(index)
                        })
                    }
qq_39556429
qq_39556429 请问循环删除事件时,只有最后一个删除了是为什么
9 个月之前 回复
zhuoganliwanjin
攻城狮Lee丶 感谢感谢。
一年多之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 完全同意这位专家的意见!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android- 百度地图 多边形的点击事件
在百度地图开发过程中,多边形的点击监听事件。 如下图所示,如何在黄色区域的触发点击事件 粗看很简单的一个逻辑,不就是覆盖物的点击事件么,然而,百度地图api并没有提供对应的接口mBaiduMap.setOnMarkerDragListener( new BaiduMap.OnMarkerDragListener() { @Override public void onMarkerDrag
button无法响应点击事件
我把一个button用setparent()函数把父窗口设置成一个listctrl了。目的是想实现点击listctrl的时候把button 移动到被点击的单元格上(如果不设置成listctrl的子窗体,计算位置太麻烦),这个现在可以实现。但是点击button的时候在对话框的窗口过程里无法响应单击消息。rn我用MFC实现上面的功能的时候,把listctrl关联一个类,然后在这个类里做消息映射是可以响应的。但是现在是用win API 开发,所以不知道如何才能做到?求各位大侠帮忙。
Android百度地图(多个marker的点击事件)
此前,笔者在进行百度地图开发的时候,发现百度提供的marker的点击事件中,并不能确定我点击的marker的是哪一个marker,这就很尴尬了. 解决方法 : marker是可以携带参数过去的,所以我们可以依靠参数来判断点击的是哪个图标. 我们的marker是通过循环添加进去的. 在这里,我们先创建一个Bundle用来进行marker的值的传递. Bundle mBundle
UITableViewCell点击事件无法响应问题
一次手贱,浪费时间一个小时。    UITableView的didSelectRowAtIndexPath在点击cell的时候没有触发,无论怎样调试就是不行,后来查看tableview的属性,发现Selection设置为None,把它设置为SingleSelection就行了。如下图:   Show Selection On Touch选项是为了设置选中cell的时候不显示背景默认的蓝色
UIButton无法响应点击事件问题
问题描述: 当设置UIButton的backgroundColor = [UIColor clearColor]时,如果此时按钮上仅有一张图片并且按钮图片较小,如下图 ‘ 此时点击按钮除图片之外的位置将不会触发按钮事件,解决办法为将UIButton的backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:0.
EditText无法快速响应点击事件
最近在写一个页面,使用了EditText,发现了一个有意思的问题。 这个页面使用了多个EditText的,EditText是这样设置的: <RelativeLayout android:id="@+id/newperson_idcard_layout" android:layout_width="match_parent"
Vue-slicksort 之坑(无法响应点击事件)
Vue-slicksort 是一款不错的有不错拖拽效果的插件。如果纯粹只是用来展示数据,并利用插件的拖拽功能,那一点问题都不会有。但如果我们想要在slick-list 中的一个普通div中监听一个click点击事件,用来动态改变slick-list中绑定的数据,实现slick-item的动态新增和删除,向下面这样 不好意思,该响应事件无效。甚至你在slick-list 和 slick...
IOS 在viewcontroller中响应了点击事件后子视图无法响应点击事件
创建子视图时需要指定初始的frame
关于百度地图InfoWindow响应自定义布局点击事件
关于百度地图InfoWindow响应自定义布局点击事件大概讲解:在百度地图上显示一个marker,当marker被点击后,会弹出一个自定义view,当时在公司做这个功能,被坑惨了,死活弹不出来,不响应.接下来看一下效果图,代码有详细注释,进去之后把百度申请的秘钥换成自己的.有一部分是检测网络代码.这个不用管.代码如下:public class MainActivity extends Activi...
如何区分多个百度地图marker的点击事件
我是这么做的  if(marker.getPosition().latitude==39.967115&&marker.getPosition().longitude==116.400244) 有更好的办法吗
百度地图无限个多边形覆盖物实例代码
在项目开发过程中,发现百度地图API有许多功能尚未完善,需要自己再写JS代码来实现,网上也没有人很好的整体解决这些问题,本人翻查了很多资料,研究完成了以下代码。本代码的功能为:实现在地图上任意新建无限个可拖拽编辑的多边形覆盖物,同时为了方便与后台传递多边形的路径点参数,在新建多边形覆盖物的同时新建input元素。同时本代码实例补充了百度地图API功能,实现在多边形覆盖物中心点显示覆盖区域名称的功能,同时改变覆盖物形状,名称位置会自动更新于覆盖物的中心。点击名称还可弹出名称编辑对话框,实现更新覆盖区域名称的目的,同时input自动获取区域名称及对应的多边形覆盖物路径点坐标数据,数据也是同步更新的。代码经测试可用,同时优化精简了代码,代码行数不是非常多,但功能很全面,注释也很清晰。
动画过程中 button 无法响应点击事件
423412341234123412
Android:GridView的item无法响应点击事件
里面有个ImageButton,怎么设置都不行,(不能点击,不让获取焦点) 最后换成ImageView就OK了…
使用animateWithDuration动画的时候无法响应点击事件
[UIView animateWithDuration:animationDuration delay:0 options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
百度地图画多边形代码
1.百度地图上画多边形 2.java判断点是否在多边形中
react-native 滚动视图点击事件无法响应的情况
react-native 滚动视图点击事件无法响应的情况:我的视图情况是有个textinput在焦点状态,点击滚动视图只是收起键盘.查询http://wiki.jikexueyuan.com/project/react-native/scroll-view.html网址可知: keyboardShouldPersistTaps 布尔型 当为false时,当键盘向上摒弃键盘时,轻击外
百度地图API(三)电子围栏—地图点击事件创建多边形
分析 电子围栏:顾名思义就是一个多边形,然后终端或者其他什么东西在这个围栏中,如果离开围栏则通知离开了围栏,而做这个电子围栏应该就是鼠标点击多个点然后形成一个多边形。所以我们可以拆分业务 地图点击连线形成多边形 点击保存不再点击连线并将最新的围栏数据传给后台 点击创建重新创建电子围栏 显示服务器保存的数据的围栏 判定终端是否在围栏内部 下面是代码,分析都在注释里面了 class fence {...
android 自定义listview无法响应点击事件OnItemClickListener
NULL 博文链接:https://z466459262.iteye.com/blog/1284375
Fresco点击默认图 无法响应点击事件
由于之前没有过fresco框架,最近发现项目中SimpleDraweeView加载url没有加载出图片显示默认图,点击无法响应点击事件;但是快速多点击几次又可以响应点击事件;这种现象十分奇怪? 以下是加载方法; public static void loadImageView(String url, SimpleDraweeView view, int defaultResource) { ...
百度地图画多边形
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/
百度地图API多边形InfoWindow
需求:点击多边形弹出infoWindow显示该多边形的信息rn实现:后台数据传到前台,根据e.target.getPath()[0]来找到对应那个多边形的信息。然后在polygon[j]的addEventlistener最后rn[code=javascript]rn polygon[j].addEventListener("click", function (e) rn var elng = e.target.getPath()[0].lng;//该多边形的第一个点x经度rn var elat = e.target.getPath()[0].lat;//纬度 rn //获取名称rn var queryResult_name = Enumerable.From(KANGZHEN)rn .Where(function (x) return x.x0 == elng && x.y0 == elat )rn .Select(function (x) return x.name )rn .ToArray();rn strResult_name = queryResult_name[0] != "" ? queryResult_name[0] : "-----";rn opts = rn width: 450, // 信息窗口宽度rn height: 300, // 信息窗口高度rn rn sContent =rn " " +rn " 建筑物名称:" + strResult_name + " " +rn ""rn //alert(sContent);//这里没有问题rn var infoWindow = new BMap.InfoWindow(sContent, opts); // 创建信息窗口对象rn this.openInfoWindow(infoWindow);rn )[/code]rnsContent试了一下alert是可以弹出相应的内容,但是点击多边形没有反应rn[code=javascript]rnvar centerpoint = new BMap.point(strResult_zx, strResult_zy);//strResult_zx, strResult_zy为前面获取的多边形中心xy坐标rn this.openInfoWindow(infoWindow,centerpoint)rn[/code]rn给了它质心点还是点击无响应rnrn同样的方法标注质心点,并增加监听是可以弹出信息框的rn请问多边形的话要怎么改?
百度地图多边形消失的问题解决
地图移动或者放大地图时,如果不能多边形不能全部可见则会消失
百度地图绘制多边形
百度地图绘制多边形,显示位置等
百度地图 JS 可编辑 多边形
业务需要 指定一个地图上的范围,为了便于采集坐标数据,开发以下程序 body, html { width: 100%; height: 100%; overflow: hidden;
百度地图 图层 多边形
百度地图 点线面 图层
关于百度地图marker的点击事件
在最开始学习使用百度地图,marker的点击事件,很容易实现点击弹出框; 像这样: baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { baiduMap
百度地图覆盖物点击事件
最近在项目中使用百度地图的自定义覆盖物时发现在手机浏览器下click无法触发,虽然有touchstart,touchmove,touchend等方法,但都不适合项目逻辑。 下面的代码我简单地定义了一个红色矩形div,给它一个click事件,添加到地图中 body, html { width: 100
百度地图InfoWindow添加点击事件
要点: 1.给InfoWindow添加元素时记得加上id 2.获取对应的id,添加点击事件     效果图:
鼠标响应画多边形
请教VC鼠标响应画多边形,左键单击画点,右键单击连接最后一点和低一点,并且获取点的坐标rn主要是获取坐标的问题,需要定义一个二维数组才能记录坐标吗,用CPOINT JL[10]行吗,行的话,那代码怎么写,谢谢各位
怎么响应button点击事件
我做个在ie的浏览栏显示的delphi band,ie显示一个自己写的html网页,网页上有个button。我在delphi band中怎么响应button点击事件???
Android-响应按键点击事件
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) Android-响应按键点击事件   1.匿名内部类   2.自定义事件监听类   3.由Activity实现OnClickListener接口   4.在布局文件中组件添加onClick属性    文章开始前, 我们需要先创建一个空的工程, 并在UI界面中添加一个按键. &lt;Button and...
CALayer响应点击事件
CALayer响应事件
如何响应QLabel的点击事件?
QLabel上显示了一字符串,我想点它,链个slot。却发现,[color=#FF0000]它没有click信号[/color]。那如何做呢?
响应send按钮的点击事件
响应send按钮的点击事件 一般我们都是在java代码里监听点击事件,然而我们也可直接通过 button的 android:onClick 属性来关联点击事件:
SwitchPreference响应点击事件
问题背景需要响应SwitchPreference(CheckBoxPreference的升级版)的点击事件,但是在点击之后,checkbox先变化,然后再弹出我们需要的流程。这个显然跟用户体验有出入了。 用户一般假设,当我们设置完毕之后,这个checkbox状态才会改变。初始方案在onPreferenceClick里面对点击的Preference的key进行判断,并进入我们弹出的新流程。这个会产生
点击事件查看器没响应
刚装了个卡巴安全套装,想看看有什么兼容性问题没,打开事件查看器,点击了一个错误说的是:无法启动 MS DTC 事务管理器,然后再点击其他的就没响应了。反复试了几次都是只能响应一次,再点就不行了,只能在任务管理器里结束任务,不知道是不是卡巴的问题,请各位能够帮一下?先谢谢了!
如何响应menu点击事件?
void CHahaDlg::OnContextMenu(CWnd* pWnd, CPoint point) rnrnCMenu pp;//加载菜单rnpp.LoadMenu (IDR_MENU1);rnCMenu* pSubMenu;rn//加载子菜单rnpSubMenu = pp.GetSubMenu(0);rn//显示菜单rn//ClientToScreen(&point);rnpSubMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y,this);rnpSubMenu->DestroyMenu();rnrn菜单是弹出来了,但是如何才能响应单击彩旦事件呢?比如说某ID为ID_ID1
viewpager 点击事件的响应
如何在viewpager 中的主Activity中得到其他页面的Buttonrnrnpublic class MainActivity extends Activity rn private LinearLayout indexLayout;rn private ImageView[] indexViews=new ImageView[4];rn private ViewPager vp;rn private View[] views=new View[4];rn private Button btn3;rn protected void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.activity_main);rn initIndex();rn rn rn vp=(ViewPager)findViewById(R.id.viewPager);rn views[0]=getLayoutInflater().inflate(R.layout.page1, null);rn views[1]=getLayoutInflater().inflate(R.layout.page2, null);rn views[2]=getLayoutInflater().inflate(R.layout.page3, null);rn views[3]=getLayoutInflater().inflate(R.layout.page4, null);rnrn ViewPagerAdapter adapter=new ViewPagerAdapter();rn vp.setAdapter(adapter);rn ViewPager.OnPageChangeListener listener=new ViewPager.OnPageChangeListener() rn rn public void onPageSelected(int arg0) rn System.out.println("onPageSelected");rn for(ImageView iv:indexViews)rn iv.setBackgroundResource(R.drawable.present);rn rn indexViews[arg0].setBackgroundResource(R.drawable.santa);rn rn rn @Overridern public void onPageScrolled(int arg0, float arg1, int arg2) rn // TODO Auto-generated method stubrn rn rn rn @Overridern public void onPageScrollStateChanged(int arg0) rn // TODO Auto-generated method stubrn rn rn ;rn vp.setOnPageChangeListener(listener);rn rn class ViewPagerAdapter extends PagerAdapterrn public int getCount() rn return views.length;rn rn public boolean isViewFromObject(View arg0, Object arg1) rn return arg0==arg1;rn rn @Overridern public void destroyItem(View container, int position, Object object) rn ((ViewPager)container).removeView(views[position]);rn rn @Overridern public Object instantiateItem(View container, int position) rn ((ViewPager)container).addView(views[position]);rn return views[position];rn rn rn rn rn private void initIndex() rn indexLayout=(LinearLayout)findViewById(R.id.indexLayout);rn for(int i=0;i<4;++i)rn indexViews[i]=new ImageView(this);rn rn indexViews[0].setBackgroundResource(R.drawable.santa);rn indexViews[0].setLayoutParams(new LayoutParams(25,25));rn for(int i=1;i<=3;++i)rn indexViews[i].setBackgroundResource(R.drawable.present);rn indexViews[i].setLayoutParams(new LayoutParams(25,25));//width,heightrn rn for(int i=0;i<4;++i)rn indexLayout.addView(indexViews[i]);rn rnrn
UIImageView响应点击事件
  UIImageView *imageView = [self getYourImageView]; imageView.image = [self getYourImage]; imageView.userInteractionEnabled = YES; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer a...
AppWidget不能响应点击事件
编写了一个AppWidget的应用,点击一下做响应的处理,因为功能比较简单,所以没有用到service,只有一个继承了AppWidgetProvider的类,在onReceive()方法里做相应的点击事件的处理。一开始点击正常,放在那里不管,过一段时间就不能点击了,貌似是不响应点击事件了。有的手机上测试没事情,但有的手机测试就是不能点击。rn 后来又测试,再添加一个AppWidget的时候就可以响应点击了,但是点击第一个添加的还是不响应点击事件。到底什么原因呢,原来的那个实例怎么不响应了呢?一开始以为那个实例不存在了,生命周期结束了,但是他也跟着第二个的点击做相应的变化啊。rn 废话多了点,不知道描述清楚没有。
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表