luo631298455
消逝de年华
2015-05-13 09:27
采纳率: 100%
浏览 12.5k

高德地图,多个详细地址怎么全部remark在地图上

我是菜鸟,现在公司业务需要一个功能就是有个界面有很多详细地址,左划出现地图,并且那些地址在地图上显示,并标记。这个功能是怎么做的 啊,看了API好像只有云图里面有,如果不用云图就不能做出来吗?
一般的查询一次只能查询一个地址,而查询下一个地址上一个地址标记的就不见了,这个真心不会了。。。求大神啊
现在我在想的问题是,怎么查询一次标记后,第二次查询不会把第一次的remark清理掉,这个可以实现么。。。
我没有调用amap.clear 这个方法。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • stringsdn
    千本摩的 2015-05-13 09:49
    已采纳

    可以的啊 你肯定自己清除掉了 代码给我我晚上可以看

    点赞 评论
  • luo631298455
    消逝de年华 2015-05-14 01:37

    // 定位成功后回调函数

        @Override
        public void onLocationChanged(AMapLocation amapLocation ) {
            if (mListener != null && amapLocation != null) {
                if (amapLocation.getAMapException().getErrorCode() == 0) {
                    mListener.onLocationChanged(amapLocation);// 显示系统小蓝点
                    // /**
                    // * 获取高德地图的中的数据
                    // */
                    // //获取位置信息
                    geoLat = amapLocation.getLatitude();
                    geoLng = amapLocation.getLongitude();
                    city=amapLocation.getCity();
                    // Log.i("test", "纬度:"+geoLat+"---------- 经度:"+geoLng);
                    // Log.i("test", "定位速度:"+amapLocation.getSpeed());
                    // Log.i("test", "定位方向:"+amapLocation.getBearing());
                    // Log.i("test", "省 名   称:"+amapLocation.getProvince());
                    // Log.i("test", "城市名称:"+amapLocation.getCity());
                    // Log.i("test", "城市编码:"+amapLocation.getCityCode());
                    // Log.i("test", "区县名称:"+amapLocation.getDistrict());
                    // Log.i("test", "区域编码:"+amapLocation.getAdCode());
                    // Log.i("test", "街道和门牌信息:"+amapLocation.getStreet());
                    // Log.i("test", "详细地址:"+amapLocation.getAddress());
                    // //获取定位信息
                    // Bundle locBundle=amapLocation.getExtras();
                    // String desc="";
                    // if (locBundle != null) {
                    // desc = locBundle.getString("desc");
                    // }
                    // Log.i("test", desc);
                    List<String> list=(List<String>) getIntent().getSerializableExtra("map");
                    for(int i=0;i<list.size();i++){
                        pinterest(list.get(i));------------------------------这里循环调用查询
                    }
                    Toast.makeText(MainActivity.this, "当前城市名为:"+city, Toast.LENGTH_LONG).show();
                }
            }
        }
    };
    private int currentPage;
    private Query query;
    
    // 周边环境搜索
    private void pinterest(String keyWord) {
        //Toast.makeText(MainActivity.this, "当前城市名为:"+city, Toast.LENGTH_LONG).show();
        currentPage = 0;
        // 第一个参数表示搜索字符串,
        //第二个参数表示POI搜索类型
        // 第三个参数表示POI搜索区域(空字符串代表全国)
        query = new PoiSearch.Query(keyWord, "", city);
        query.setPageSize(1);// 设置每页最多返回多少条poiitem
        query.setPageNum(currentPage);// 设置查第一页
        PoiSearch poiSearch = new PoiSearch(this, query);
        //参数为经度,纬度,周围距离
        poiSearch
                .setBound(new SearchBound(new LatLonPoint(geoLat, geoLng), 5000));
        poiSearch.setOnPoiSearchListener(poiSearchListener);--------------调用监听
        poiSearch.searchPOIAsyn();
    }
    
    
    
    private PoiResult poiResult;
    private OnPoiSearchListener poiSearchListener = new OnPoiSearchListener() {
    
        @Override
        public void onPoiSearched(PoiResult result, int rCode) {
            if (rCode == 0) {
                // 搜索POI的结果
                if (result != null && result.getQuery() != null) {
                    // 是否是同一条
                    if (result.getQuery().equals(query)) {
                        poiResult = result;
                        // 取得搜索到的poiitems有多少页
                        int resultPages = poiResult.getPageCount();
                        // 取得第一页的poiitem数据,页数从数字0开始
                        List poiItems = poiResult.getPois();
                        // 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息
                        List suggestionCities = poiResult
                                .getSearchSuggestionCitys();
    
                        // dissmissProgressDialog();// 隐藏对话框
                        if (poiItems != null && poiItems.size() > 0) {
                            //aMap.clear();// 清理之前的图标----------------------------这个地方我注释掉的额。。。
                            PoiOverlay poiOverlay = new PoiOverlay(aMap,
                                    poiItems);
                            //poiOverlay.removeFromMap();
                            poiOverlay.addToMap();
                            //poiOverlay.zoomToSpan();
                        } 
                    }
                } 
            } 
        }
        昨天晚上回去的时候没有带回去,晚上我在高德地图上找API还是没有头绪。。。菜鸟好无语
    
    点赞 评论
  • luo631298455
    消逝de年华 2016-11-15 08:57

    额,我后来没怎么上csdn了,刚才看到这个问题,本来想删了的,不过看了浏览数不是很少,我把我以前解决的方法 贴出来把
    public void addMarkersToMap(List markerList) {
    try {
    int j = markerList.size();
    for (int i = 0; i < j; i++) {
    AddCodeBean addCodeBean = markerList.get(i);
    Drawable drawable = getResources().getDrawable(
    R.drawable.icon_location);
    Bitmap bitmap = MapContans.getMarkBitmap(drawable,
    DensityUtils.dp2px(NoSignWaybillMap.this, 25),
    DensityUtils.dp2px(NoSignWaybillMap.this, 35));//设置marker图标
    double lat = addCodeBean.getLatitude();
    double lng = addCodeBean.getLongitude();
    LatLng latlng = new LatLng(lat, lng);
    Marker waybillMarker = aMap.addMarker(new MarkerOptions()
    .position(latlng)
    .icon(BitmapDescriptorFactory.fromBitmap(bitmap))
    .draggable(true));//添加
    waybillMarker.setRotateAngle(0);// 设置marker旋转
    waybillMarker.setTitle(FLAG);
    waybillMarker.setSnippet(lng + "");
    waybillMarker.setObject(latlng);
    }

        } catch (Exception e) {
            Log.e("error", "添加marke错误:" + e);
        }
    }
    
    点赞 评论

相关推荐