package com.yufs.wechatlocation;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.CameraUpdateFactory;
import com.amap.api.maps2d.MapView;
import com.amap.api.maps2d.model.BitmapDescriptorFactory;
import com.amap.api.maps2d.model.LatLng;
import com.amap.api.maps2d.model.Marker;
import com.amap.api.maps2d.model.MarkerOptions;
import com.amap.api.services.core.AMapException;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.core.PoiItem;
import com.amap.api.services.core.SuggestionCity;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeQuery;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.amap.api.services.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;
import com.yufs.wechatlocation.adapter.PoiAdapter;
import com.yufs.wechatlocation.bean.PoiBean;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* Created by yufs on 2017/4/17.
*/
public class LocationSelectActivity extends BaseActivity implements PoiSearch.OnPoiSearchListener, AutoListView.OnRefreshListener, AutoListView.OnLoadListener, AMap.OnMapClickListener, AMap.OnMarkerClickListener, AMap.InfoWindowAdapter {
private static final int REQUEST_SEARCH_CODE = 1;
private static final int RESULT_INTENT_CODE=2;
private AutoListView lv_list;
private MapView mMapView;
private TextView tv_title_back,tv_title_right,tv_title_search;
private AMap mAMap;
private Marker locationMarker; // 选择的点
private LatLonPoint lp = new LatLonPoint(39.907775, 116.247522);//
private PoiSearch.Query poiQuery;//poi搜索类
private PoiSearch.Query query;// Poi查询条件类
private PoiSearch poiSearch;
private AMapLocationClient locationClient = null;//定位类
private double mLatitude,mLongitude;//定位的经纬度
private String mCity;//定位的城市
private PoiBean mCurrPoiBean;
private PoiAdapter mAdapter;
private int currentPage=0;//页数从第0页开始
private List<PoiBean> poiData=new ArrayList<>();
private AMapLocation mLoc;//首次进入定位成功信息
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_address);
initView();
mMapView.onCreate(savedInstanceState);
InitLocation();
setListener();
}
private void initView() {
mMapView= (MapView) findViewById(R.id.map);
lv_list= (AutoListView) findViewById(R.id.lv_list);
tv_title_back= (TextView) findViewById(R.id.tv_title_back);
tv_title_right= (TextView) findViewById(R.id.tv_title_right);
tv_title_search= (TextView) findViewById(R.id.tv_title_search);
}
private void setListener() {
mAdapter=new PoiAdapter(this,poiData);
lv_list.setAdapter(mAdapter);
lv_list.setOnRefreshListener(this);
lv_list.setOnLoadListener(this);
lv_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PoiBean poiBean = poiData.get((int) id);
mCurrPoiBean=poiBean;
LatLonPoint point = poiBean.getPoint();
addmark(point.getLatitude(),point.getLongitude());
mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(point.getLatitude(), point.getLongitude()), 14));
for (int i=0;i<poiData.size();i++){
poiData.get(i).setSelected(false);
}
poiBean.setSelected(true);
mAdapter.notifyDataSetChanged();
}
});
tv_title_right.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
confirm();
}
});
tv_title_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openSearch();
}
});
tv_title_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
private void InitLocation() {
//初始化client
locationClient = new AMapLocationClient(this.getApplicationContext());
//设置定位参数
locationClient.setLocationOption(getDefaultOption());
// 设置定位监听
locationClient.setLocationListener(locationListener);
locationClient.startLocation();
}
private String savePath;//本地截图保存路径,待删除
public void confirm(){
if(mCurrPoiBean==null){
Toast.makeText(this, "请选择详细地址", Toast.LENGTH_SHORT).show();
return;
}
mAMap.getMapScreenShot(new AMap.OnMapScreenShotListener() {
@Override
public void onMapScreenShot(Bitmap bitmap) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String pathFolder= Environment.getExternalStorageDirectory().toString() + "/myou/cacheimage/";
savePath=pathFolder+"t_" + sdf.format(new Date()) + ".png";
Log.e("yufs","截图保存路径:"+savePath);
if(null == bitmap){
return;
}
try {
File file = new File(pathFolder);
if(!file.exists()){
file.mkdirs();
}
FileOutputStream fos = new FileOutputStream(new File(savePath));
boolean b = bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
try {
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer buffer = new StringBuffer();
if (b) {
buffer.append("截屏成功 ");
Log.e("yufs", "截图完成。。。");
// //上传图片到七牛
// imageBytes = ImageUtils.bmpToByteArray(bitmap, false);
// //获取七牛token
// getQiniuToken();
submit();
}else {
buffer.append("截屏失败 ");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
- 1
- 2
- 3
- 4
前往页