用高德地图实现类似于微信的定位搜索

实现类似于微信的定位搜索。
布局:
大概布局

上面是一个mapview,红点只是一张图片,用于显示当前的位置,载入时首先定位,然后以定位地点为中心搜索附近,通过adapter显示在下面的listview里面。其中触摸移动地图会重新搜索,点击listview里面的item会使地图中心移动到该位置但是不会重新搜索。上面的搜索功能可以在输入关键字是提示。

public class MapActivity extends AppCompatActivity implements
    OnGeocodeSearchListener, LocationSource, AMapLocationListener,
    OnCameraChangeListener, OnPoiSearchListener , OnItemClickListener, TextWatcher, InputtipsListener{

private GeocodeSearch geocoderSearch;
private String addressName;
private MapView mapView;
private AMap aMap;
private OnLocationChangedListener mListener;
private AMapLocationClient mlocationClient;
private AMapLocationClientOption mLocationOption;
//  private TextView mTapTextView;
private AutoCompleteTextView searchText;
private Button mButton1 ,mButton2,searchButton;
private LatLonPoint latLonPoint;
private PoiItem poiItem;
private ImageView mImg;
private ProgressBar progressBar;

private ListView mListView;
private PoiListAdapter mPoiListAdapter;
private PoiSearch.Query query;// Poi查询条件类
private PoiSearch poiSearch;
private PoiResult poiResult; // poi返回的结果
private List<PoiItem> poiItems;// poi数据
private PoiItem fitem;
private String keyWord = "";
private String city = "温州市";
private boolean IsManual;


@Override
protected void onCreate(Bundle savedInstanceState) {
    IsManual = false;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    mapView = (MapView) findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);//此方法必须重写

    init();
}

private void init() {
    if (aMap == null) {
        aMap = mapView.getMap();

    searchText = (AutoCompleteTextView) findViewById(R.id.keyWord);
    searchText.addTextChangedListener(this);// 添加文本输入框监听事件

    mButton1 = (Button) findViewById(R.id.back_btn);
    mButton1.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent=new Intent();
            intent.putExtra("longitude", "");
            intent.putExtra("latitude", "");
            intent.putExtra("address", "");
            setResult(RESULT_OK,intent);
            finish();
        }
    });

    mButton2 = (Button) findVi
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值