package com.example.administrator.my_map;
import android.app.Application;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.TextureView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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.maps.AMap;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.amap.api.maps.TextureMapView;
import com.amap.api.maps.UiSettings;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle;
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.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;
import com.amap.api.services.route.RouteSearch;
import java.util.List;
public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener, PoiSearch.OnPoiSearchListener, AMap.OnCameraChangeListener {
private MapView mMapView;//显示地图的视图
private AMap aMap;//定义AMap 地图对象的操作方法与接口。
private OnLocationChangedListener mListener;//位置发生变化时的监听
private AMapLocationClient mapLocationClient;//定位服务类。此类提供单次定位、持续定位、地理围栏、最后位置相关功能。
private AMapLocationClientOption mapLocationClientOption;//定位参数设置,通过这个类可以对定位的相关参数进行设置
//在AMapLocationClient进行定位时需要这些参数
//设置地图样式的按钮
private Button btn_weixing;
private Button btn_normal;
private Button btn_night;
//实现高德地图POI搜索
private EditText edt_serch;
private Button btn_search;
private RouteSearch routeSearch;
private String type = "";//poi搜索的类型
private String city = "";
private PoiSearch.Query query;//Poi查询条件类
private PoiSearch poisearch;
private PoiResult poiresult;//Poi搜索返回的结果
private LatLng latlng;//经纬度
private List<PoiItem> poiItems;
Marker marker = null;
boolean isChange = false;
private Button btn_shuaxin;
//用Android materia 简化界面
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.map);
mMapView.onCreate(savedInstanceState);//必须调用
init();
//设置地图样式
initType();
//开始搜寻目的地
initQuery();
}
private void initQuery() {
btn_search = (Button) findViewById(R.id.btn_search);
edt_serch = (EditText) findViewById(R.id.edt_serch);
routeSearch = new RouteSearch(this);
btn_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
aMap.clear();
doQuery();
poisearch.searchPOIAsyn();
}
});
btn_shuaxin = (Button) findViewById(R.id.btn_shuaxin);
btn_shuaxin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,Activity_Weather.class);
startActivity(intent);
}
});
}
private void doQuery() {
aMap.setOnMapClickListener(null);// 进行poi搜索时清除掉地图点击事件
int currentPage = 0;
type = edt_serch.getText().toString();
Toast.makeText(MainActivity.this,type,Toast.LENGTH_LONG).show();
query = new PoiSearch.Query("", type, "广州");// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国)
query.setPageSize(20);// 设置每页最多返回多少条poiitem
query.setPageNum(currentPage);// 设置查第一页
LatLonPoint lp = new LatLonPoint(latlng.latitude, latlng.longitude);
poisearch = new PoiSearch(this, query);
poisearch.setOnPoiSearchListener(MainActivity.this);
poisearch.setBound(new PoiSearch.SearchBound(lp, 2000, true)); // 设置搜索区域为以lp点为圆心,其周围2000米范围
}
private void initType() {
btn_normal = (Button) findViewById(R.id.map_normal);
btn_weixing = (Button) findViewById(R.id.map_weixing);
btn_night = (Button) findViewById(R.id.map_night);
//标准模式
btn_normal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
aMap.setMapType(AMap.MAP_TYPE_NORMAL);
}
});
//卫星图模式
btn_weixing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
}
});
//夜间模式
btn_night.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
aMap.setMapType(AMap.MAP_TYPE_NIGHT);
}
});
}
//实例化Amap对象
public void init() {
if (aMap == null) {
aMap = mMapView.getMap();
setConfigrationAmap();
}
}
//配置Amap对象
public void setConfigrationAmap() {
aMap.setLocationSource(MainActivity.this);//设置定位监听
aMap.setMyLocationEnabled(true);//设置显示定位层,并可以出发定位
aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置显示定位按 钮
aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);//设置定位类型
}
// 必须重写
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
mMapView.onSaveInstanceState(outState);
}
// 必须重写
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
// 必须重写
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
deactivate();
}
// 必须重写
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
if(mapLocationClient!=null){
mapLocationClient.onDestroy();
}
}
//激活定位
@Override
public void activate(OnLocationChangedListener onLocationChangedListener) { System.out.println("已经激活定位-------------activate");
mListener=onLocationChangedListener;
if(mapLocationClient==null){
mapLocationClient=new AMapLocationClient(MainActivity.this);
mapLocationClientOption=new AMapLocationClientOption();
mapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//设置定位模式为 高精度
mapLocationClient.setLocationOption(mapLocationClientOption);//设置配置
mapLo
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 高德地图天气-定位(动态图实现)(源码).zip
资源推荐
资源详情
资源评论


























收起资源包目录













































































































共 69 条
- 1
资源评论


土豆片片
- 粉丝: 1892
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 电催化氧化废水处理技术介绍.ppt
- 论高职单片机教学改革的研究与实践.docx
- 中职数学信息化教学的设计与实施.docx
- 企业组织结构设计.ppt
- 学校建设项目初设概算评估报告(实例).doc
- 换热器传热课件.ppt
- 基于孤立点挖掘的入侵检测技术在网络安全中的应用.doc
- 【中天山西】晋中碧桂园南区二标段技术策划.pdf
- 机械设备岗位操作规程.doc
- 电力建设工程监理规范表格.doc
- 某工程整体性地脚螺栓预埋施工方案.doc
- 中学体育馆装饰工程招标文件.doc
- 环氧树脂的性能及应用特点.doc
- 测量过程管理标准.doc
- 《算法与数据结构》实验教学大纲.doc
- 网络安全技术与公安网络系统安全研究.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
