ARCGIS for android

环境配置


开发心得

  • 阅读文档下载
  • 查看官方demo下载
  • 试着自己做demo,遇到问题看官方文档,然后百度

遇到的问题

1.使用ARCGIS加载自己的地图服务
用ArcGISTiledMapServiceLayer这个图层
2.用自己的地图服务在自己的地图服务内进行定位
1>.使用android 定位APi 获取坐标
2>.获取坐标以后用Handler进行数据传递,在handleMessage方法里对
获取的坐标进行判断
3>.然后再使用GraphicsLayer在地图上显示

 graphicsLayer = new GraphicsLayer();
        PictureMarkerSymbol pic =
                new PictureMarkerSymbol(getResources().getDrawable(R.drawable.myloc));
        pt = new Point(Float.parseFloat(strY), Float.parseFloat(strX));// 创建一个点对象
        Graphic gp = new Graphic(pt, pic);// 设置样式
        graphicsLayer.addGraphic(gp);// 添加到图层中
        mMapView.addLayer(graphicsLayer);

3.对自己地图服务上的点设置监听
地图设置setOnSingleTapListener监听,在onSingleTap方法里
获graphicsLayer图层 并对附近的点进行检索

// 地图上的点击事件
        mMapView.setOnSingleTapListener(new OnSingleTapListener() {


            /**
             * 
             */
            private static final long serialVersionUID = -4460650528173919694L;

            @Override
            public void onSingleTap(float x, float y) {
                if (!mMapView.isLoaded()) { // 如果地图还未加载好 则不执行任何操作
                    return;
                }

                // 获得图层
                GraphicsLayer layer = GetGraphicLayer();
                if (layer != null && layer.isInitialized() && layer.isVisible()) {
                    Graphic result = null;
                    // 检索当前 光标点(手指按压位置)的附近的 graphic对象
                    result = GetGraphicsFromLayer(x, y, layer);
                    if (result != null) {
                        // 获得附加特别的属性
                        int msgTag = (Integer) result.getAttributeValue("tag");
                        DisputeEntity disputeEntity = null;
                        if (checkResultPhone.size() != 0) {
                            disputeEntity = checkResultPhone.get(msgTag);
                        }
                        Log.e(TAG, "" + msgTag);
                        // 实例化SelectPicPopupWindow
                        menuWindow =
                                new SelectPicPopupWindow2(CheckDisputeLocalMapActivity.this,
                                        itemsOnClick, disputeEntity);
                        // 显示窗口
                        menuWindow.showAtLocation(
                                CheckDisputeLocalMapActivity.this.findViewById(R.id.llMap),
                                Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0); // 设置layout在PopupWindow中显示的位置
                        //
                    }
                }

            }
        });

4.在自己的地图服务上点击每一个获取点的所附带的值,并弹出自定义的pop

// 获得附加特别的属性
   int msgTag = (Integer) result.getAttributeValue("tag");

// 实例化SelectPicPopupWindow
                        menuWindow =
                                new SelectPicPopupWindow2(CheckDisputeLocalMapActivity.this,
                                        itemsOnClick, disputeEntity);
                        // 显示窗口
                        menuWindow.showAtLocation(
                                CheckDisputeLocalMapActivity.this.findViewById(R.id.llMap),
                                Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0); // 设置layout在PopupWindow中显示的位置

5.地图缓存
重写这个ArcGISTiledMapServiceLayer类
在getTile方法里面进行缓存

仅供参考代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值