• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

在百度地图中设置气泡,但是setAddrType("all")方法不能用

按照别人博客的样例一步一步来写,别人给的demo能正常运行,但是我的就出现setAddrType("all")方法不能用,导包我都是直接复制demo的,应该不是导包的问题。这是demo的网址http://blog.csdn.net/hhhccckkk/article/details/39496495





以下是我自己的代码




package com.android.activity;import android.os.Bundle;import java.io.File;import android.util.Log;import java.math.BigDecimal;import java.net.URISyntaxException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import android.view.LayoutInflater;import net.tsz.afinal.FinalActivity;import net.tsz.afinal.FinalHttp;import net.tsz.afinal.annotation.view.ViewInject;import net.tsz.afinal.http.AjaxCallBack;import net.tsz.afinal.http.AjaxParams;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.content.Intent;import android.database.sqlite.SQLiteDatabase;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import android.view.View;import com.alibaba.fastjson.JSONObject;import android.widget.LinearLayout;import android.widget.TextView;import com.android.activity.MyOrientationListener.OnOrientationListener; import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapPoi;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.Marker;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.MyLocationConfigeration;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.map.BaiduMap.OnMapClickListener;import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener;import com.baidu.mapapi.map.MyLocationConfigeration.LocationMode;import com.baidu.mapapi.model.LatLng;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.LinearLayout;import android.widget.TextView;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BaiduMap.OnMapClickListener;import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener;import com.baidu.mapapi.map.BaiduMapOptions;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.InfoWindow.OnInfoWindowClickListener;import com.baidu.mapapi.map.InfoWindow;import com.baidu.mapapi.map.MapPoi;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.Marker;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.search.geocode.GeoCodeResult;import com.baidu.mapapi.search.geocode.GeoCoder;import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;public class BaidudituActivity extends FinalActivity {        private LinearLayout mapLayout;        private BitmapDescriptor bitmap;        private InfoWindow mInfoWindow;        private LocationClient mLocClient;        public MyLocationListenner myListener = new MyLocationListenner();        private Button button1;        MyApplication myApp;        /**         * 地图控件         */        private MapView mMapView = null;        /**         * 地图实例         */        private BaiduMap mBaiduMap;        /**         * 定位的客户端         */        private LocationClient mLocationClient;//= mLocClient        /**         * 定位的监听器         */        boolean isFirstLoc = true;        /**         * 当前定位的模式         */        private LocationMode mCurrentMode = LocationMode.NORMAL;        /***         * 是否是第一次定位         */        private volatile boolean isFristLocation = true;        /**         * 最新一次的经纬度         */        private double mCurrentLantitude;        private double mCurrentLongitude;        /**         * 当前的精度         */        private float mCurrentAccracy;        /**         * 方向传感器的监听器         */        private MyOrientationListener myOrientationListener;        /**         * 方向传感器X方向的值         */        private int mXDirection;        /**         * 地图定位的模式         */        private String[] mStyles = new String[] { "地图模式【正常】", "地图模式【跟随】",                        "地图模式【罗盘】" };        private int mCurrentStyle = 0;        // 初始化全局 bitmap 信息,不用时及时 recycle        private BitmapDescriptor mIconMaker;        @Override        protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                requestWindowFeature(Window.FEATURE_NO_TITLE);                init();                mapLayout = (LinearLayout) findViewById(R.id.map);                                                                BaiduMapOptions options = new BaiduMapOptions();                        mBaiduMap.setOnMapClickListener(new OnMapClickListener() {                          @Override                        public boolean onMapPoiClick(MapPoi arg0) {                                return false;                        }                        @Override                        public void onMapClick(LatLng arg0) {                                GeoCoder getCoder = GeoCoder.newInstance();                                ReverseGeoCodeOption reCodeOption = new ReverseGeoCodeOption();                                reCodeOption.location(arg0);                                getCoder.reverseGeoCode(reCodeOption);                        }                });                mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {                         @Override                        public boolean onMarkerClick(Marker arg0) {                                return false;                        }                });                        }                                public void init() {                BaiduMapOptions options = new BaiduMapOptions();                options.compassEnabled(false); // 不允许指南针                options.zoomControlsEnabled(false); // 不显示缩放按钮                options.scaleControlEnabled(false); // 不显示比例尺                mMapView = new MapView(this, options); // 创建一个map对象                mapLayout.addView(mMapView); // 把map添加到界面上                mBaiduMap = mMapView.getMap(); // 获取BaiduMap对象                mMapView.removeViewAt(1); // 去掉百度logo                mBaiduMap.setMyLocationEnabled(false); //不显示我的位置,样覆盖物代替                mBaiduMap.setMaxAndMinZoomLevel(18, 17);//图的最大最小缩放比例3-18                mLocClient = new LocationClient(this); //地图在tabhost中,请传入getApplicationContext()                mLocClient.registerLocationListener(myListener); //绑定定位监听                LocationClientOption option = new LocationClientOption(); //配置参数                option.setOpenGps(true);/*这里出了问题*/option.setAddrType("all"); //设置使其可以获取具体的位置,把精度纬度换成具体地址                option.setCoorType("bd09ll");                option.setScanSpan(1000);                mLocClient.setLocOption(option);                mLocClient.start();  //开始定位                Intent intent = getIntent();                // 注意该方法要再setContentView方法之前实现                SDKInitializer.initialize(getApplicationContext());                setContentView(R.layout.baiduditu_map_activity);                button1 = (Button) findViewById(R.id.button1);                button1.setOnClickListener(new View.OnClickListener() {                        @Override                        public void onClick(View v) {                                if (myApp.getState().equals("0")) {                                        Intent intent = new Intent();                                        intent.setClass(BaidudituActivity.this, Page1Activity.class);                                        startActivity(intent);                                                                        } else if (myApp.getState().equals("1")) {                                        myApp.setState("2");                                        button1.setVisibility(View.GONE);                                }                        }                });                myApp = (MyApplication) getApplication();                if (myApp.getState().equals("0")) {                        button1.setText("求    助");                } else if (myApp.getState().equals("1")) {                        button1.setText("确定帮忙");                } else if (myApp.getState().equals("2")) {                        button1.setVisibility(View.GONE);                }                                  mMapView = (MapView) findViewById(R.id.id_bmapView);                // 获得地图的实例                mBaiduMap = mMapView.getMap();                                 }                 public class MyLocationListenner implements BDLocationListener {  //定位                @Override                public void onReceiveLocation(BDLocation location) {            Log.d("hck", "定位定位");                        if (location == null || mMapView == null)                                return;                        MyLocationData locData = new MyLocationData.Builder()                                        .accuracy(location.getRadius()).direction(100)                                        .latitude(location.getLatitude())                                        .longitude(location.getLongitude()).build();                        mBaiduMap.setMyLocationData(locData);                        if (isFirstLoc) {                                  Log.d("hck", "定位定位成功");                                isFirstLoc = false;                                LatLng ll = new LatLng(location.getLatitude(),                                                location.getLongitude());                                MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);                                mBaiduMap.animateMapStatus(u);                                mark(ll.latitude, ll.longitude, location.getAddrStr());                        }                }                        public void onReceivePoi(BDLocation poiLocation) {                }        }        private void setListener() {                mBaiduMap.setOnMapClickListener(new OnMapClickListener() {  //点击地图事件                        @Override                        public boolean onMapPoiClick(MapPoi arg0) {                                return false;                        }                        @Override                        public void onMapClick(LatLng arg0) {                                GeoCoder getCoder = GeoCoder.newInstance();                                ReverseGeoCodeOption reCodeOption = new ReverseGeoCodeOption();                                reCodeOption.location(arg0);                                getCoder.reverseGeoCode(reCodeOption);                                getCoder.setOnGetGeoCodeResultListener(new GetAddress());                        }                });                mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { //点击覆盖物事件                        @Override                        public boolean onMarkerClick(Marker arg0) {                                showLocation(arg0);                                return false;                        }                });        }        private void showLocation(final Marker marker) {  //显示气泡                // 创建InfoWindow展示的view                LatLng pt = null;                double latitude, longitude;                latitude = marker.getPosition().latitude;                longitude = marker.getPosition().longitude;                View view = LayoutInflater.from(this).inflate(R.layout.map_item, null); //自定义气泡形状                TextView textView = (TextView) view.findViewById(R.id.my_postion);                pt = new LatLng(latitude + 0.0004, longitude + 0.00005);                textView.setText(marker.getTitle());                // 定义用于显示该InfoWindow的坐标点                // 创建InfoWindow的点击事件监听者                OnInfoWindowClickListener listener = new OnInfoWindowClickListener() {                        public void onInfoWindowClick() {                                mBaiduMap.hideInfoWindow();//影藏气泡                        }                };                // 创建InfoWindow                mInfoWindow = new InfoWindow(view, pt, listener);                mBaiduMap.showInfoWindow(mInfoWindow); //显示气泡        }        private void mark(double latitude, double longitude, String title) {//显示覆盖物                // 定义Maker坐标点                LatLng point = new LatLng(latitude, longitude);                // 构建Marker图标                bitmap = BitmapDescriptorFactory.fromResource(R.drawable.pointe_map);                // 构建MarkerOption,用于在地图上添加Marker                OverlayOptions option = new MarkerOptions().position(point)                                .icon(bitmap);                // 在地图上添加Marker,并显示                Marker marker = (Marker) mBaiduMap.addOverlay(option);                marker.setTitle(title);                Bundle bundle = new Bundle();                bundle.putSerializable("recore", "ddd");                marker.setExtraInfo(bundle);        }        class GetAddress implements OnGetGeoCoderResultListener { //点击地图获取点击位置处的详细地址                @Override                public void onGetGeoCodeResult(GeoCodeResult arg0) {                }                @Override                public void onGetReverseGeoCodeResult(ReverseGeoCodeResult arg0) {                        arg0.getAddress();                        mBaiduMap.hideInfoWindow();                        mark(arg0.getLocation().latitude, arg0.getLocation().longitude,                                        arg0.getAddress());                }        }         @Override        protected void onStop() {                // 关闭图层定位                         super.onStop();        }        @Override        protected void onDestroy() {                super.onDestroy();                // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理                mMapView.onDestroy();                         mMapView = null;        }        @Override        protected void onResume() {                super.onResume();                // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理                mMapView.onResume();                handler.post(runnable);        }        @Override        protected void onPause() {                super.onPause();                // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理                mMapView.onPause();        }         private Runnable runnable = new Runnable() {                public void run() {                        // 做操作                        handler.sendEmptyMessage(1);                }        };        private Handler handler = new Handler() {                public void handleMessage(android.os.Message msg) {                        switch (msg.what) {                        case 1:                                // 更新UI                                init();                                break;                        }                };        };}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031168位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!