-
高德地图开发时需要导入的包在下面的网盘链接中:(由于高德地图api更新得太快,官网上最新的包使用起来没有之前的方便,所以以下提供最全面的原始包)
链接:http://pan.baidu.com/s/1eR8Nchc 密码:be1v
其中armeabi这个文件夹和其他4个jar是必要导入的,另外两个文件夹确保兼容性。
①首先登陆高德lbs开放平台获取Key,下面是官方详细教程:
http://lbs.amap.com/dev/ticket#/faqcat/1
(本人使用的是eclipse,所以获取安全码SHA1的方法为Windows->preferences->Android->build,如下图所示的SHA1 fingerprint)
然后你要设置你所开发的app的包,即在下面的Package中输入你的app包名(这点不能输错)
②申请到key之后,修改安卓项目的AndroidManifest.xml文件,即获取相关的权限和导入key(才能正常启动高德地图)
11个<uses-permission....>就是相关权限的设置,把代码写进去
还有加一个<meta-data....>把你的key导入进去,需要记住android:name="com.amap.api.v2.apikey"
下面的代码都是调试所用,所有信息都将在logcat栏目里面显示。
③进行定位:
- package (你的包名);
- import com.amap.api.location.AMapLocation;
- import com.amap.api.location.AMapLocationListener;
- import com.amap.api.location.LocationManagerProxy;
- import com.amap.api.location.LocationProviderProxy;
- import com.amap.api.maps.model.MyLocationStyle;
- import android.app.Activity;
- import android.location.Location;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuItem;
- public class MainActivity extends Activity implements AMapLocationListener {
- LocationManagerProxy mLocationManagerProxy;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mLocationManagerProxy=LocationManagerProxy.getInstance(this);
- mLocationManagerProxy.requestLocationData(LocationProviderProxy.AMapNetwork, 2000, 15, this);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- public void onLocationChanged(Location location) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderEnabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderDisabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- mLocationManagerProxy.destroy();
- }
- @Override
- public void onLocationChanged(AMapLocation arg0) {
- // TODO Auto-generated method stub
- if(arg0!=null&&arg0.getAMapException().getErrorCode()==0){
- Log.i("helloworld", arg0.toString());
- }
- }
- package (你的包名);
- import com.amap.api.maps.AMap.OnMapClickListener;
- import com.amap.api.location.AMapLocation;
- import com.amap.api.location.AMapLocationListener;
- import com.amap.api.location.LocationManagerProxy;
- import com.amap.api.maps.MapView;
- import com.amap.api.maps.model.CircleOptions;
- import com.amap.api.maps.model.LatLng;
- import android.app.Activity;
- import android.app.PendingIntent;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.location.Location;
- import android.location.LocationManager;
- import android.os.Bundle;
- import android.util.Log;
- public class GeoFenceActivity extends Activity implements OnMapClickListener,AMapLocationListener{
- LocationManagerProxy mLocationManagerProxy;
- MapView mapView;
- String GEOFENCE_BROADCAST_ACTION="com.example.helloworld";
- PendingIntent mPendingIntent;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mLocationManagerProxy=LocationManagerProxy.getInstance(this);
- mapView=(MapView)findViewById(R.id.main_mapView);
- mapView.onCreate(savedInstanceState);
- mapView.getMap().setOnMapClickListener(this);
- Intent intent=new Intent(GEOFENCE_BROADCAST_ACTION);
- mPendingIntent=PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
- IntentFilter intentfilter=new IntentFilter();
- intentfilter.addAction(GEOFENCE_BROADCAST_ACTION);
- this.registerReceiver(mGeoFenceReceiver, intentfilter);
- mLocationManagerProxy.requestLocationData(LocationManager.GPS_PROVIDER,2000,15, this);
- }
- private BroadcastReceiver mGeoFenceReceiver=new BroadcastReceiver(){
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- Log.e("helloworld", "收到广播");
- int i= intent.getIntExtra("status", -1);
- if(i==1){
- Log.e("helloworld", "在地理围栏内部");
- }
- if(i==0){
- Log.e("helloworld", "在地理围栏外部");
- }
- }
- };
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- mapView.onResume();
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- }
- @Override
- public void onMapClick(LatLng arg0) {
- // TODO Auto-generated method stub
- Log.e("helloworld", "lat ="+arg0.latitude);
- Log.e("helloworld", "lon ="+arg0.longitude);
- mapView.getMap().addCircle(new CircleOptions().center(arg0).radius(1000));
- mLocationManagerProxy.addGeoFenceAlert(arg0.latitude, arg0.longitude, 1000, 1000*60*30, mPendingIntent);
- }
- @Override
- public void onLocationChanged(Location location) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderEnabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderDisabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onLocationChanged(AMapLocation arg0) {
- // TODO Auto-generated method stub
- }
- }
⑤天气预报(现在或未来的):
- package (你的包名);
- import java.util.List;
- import com.amap.api.location.AMapLocalDayWeatherForecast;
- import com.amap.api.location.AMapLocalWeatherForecast;
- import com.amap.api.location.AMapLocalWeatherListener;
- import com.amap.api.location.AMapLocalWeatherLive;
- import com.amap.api.location.LocationManagerProxy;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- public class WeatherActivity extends Activity implements AMapLocalWeatherListener{
- LocationManagerProxy mLocationManagerProxy;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mLocationManagerProxy=LocationManagerProxy.getInstance(this);
- mLocationManagerProxy.requestWeatherUpdates(LocationManagerProxy.WEATHER_TYPE_FORECAST,this);
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- }
- @Override
- public void onWeatherForecaseSearched(AMapLocalWeatherForecast arg0) {
- // TODO Auto-generated method stub
- //未来天气
- List<AMapLocalDayWeatherForecast> list=arg0.getWeatherForecast();
- for(int i=0;i<list.size();i++){
- AMapLocalDayWeatherForecast dayweather=list.get(i);
- Log.i("helloworld", "城市"+dayweather.getCity());
- Log.i("helloworld", "时间"+dayweather.getDate());
- Log.i("helloworld", "温度"+dayweather.getDayTemp());
- Log.i("helloworld", "风力"+dayweather.getDayWindPower());
- }
- }
- @Override
- public void onWeatherLiveSearched(AMapLocalWeatherLive arg0) {
- // TODO Auto-generated method stub
- //当天天气
- Log.i("helloworld", "城市"+arg0.getCity());
- Log.i("helloworld", "湿度"+arg0.getHumidity());
- Log.i("helloworld", "风力"+arg0.getWindPower());
- }
- }
- package com.example.maptest;
- import java.util.ArrayList;
- import java.util.List;
- import com.amap.api.location.AMapLocation;
- import com.amap.api.location.AMapLocationListener;
- import com.amap.api.maps.AMap.OnMapLoadedListener;
- import com.amap.api.maps.MapView;
- import com.amap.api.maps.model.LatLng;
- import com.amap.api.maps.model.PolygonOptions;
- import android.app.Activity;
- import android.location.Location;
- import android.os.Bundle;
- import android.os.Trace;
- public class TrackActivity extends Activity implements OnMapLoadedListener{
- MapView mapview;
- double Trace[]={
- 40.03833763826341,116.44161604271481,
- 40.038120,116.441789,
- 40.0378823754,116.441780,
- 40.037589,116.441768,
- 40.03744051,116.44175,
- 40.036884,116.441722,
- 40.03663242,116.441705466};
- List<LatLng>list;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mapview=(MapView)findViewById(R.id.main_mapView);
- mapview.onCreate(savedInstanceState);
- mapview.getMap().setOnMapLoadedListener(this);
- list=new ArrayList<LatLng>();
- for(int i=0;i<Trace.length-1;i++){
- LatLng latlng=new LatLng(Trace[i], Trace[++i]);
- list.add(latlng);
- }
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- mapview.onResume();
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- }
- @Override
- public void onMapLoaded() {
- // TODO Auto-generated method stub
- mapview.getMap().addPolygon(new PolygonOptions().addAll(list));
- }
- }
⑦搜索周边位置(以下例子是将搜索范围确定在“杨小贤”,“餐饮”,“广州市”)并且是以自己所在大学城位置为中心半径为200000m范围内搜索:
- package (你的包名);
- import java.util.List;
- import com.amap.api.location.AMapLocation;
- import com.amap.api.location.AMapLocationListener;
- import com.amap.api.location.LocationManagerProxy;
- import com.amap.api.location.LocationProviderProxy;
- import com.amap.api.maps.MapView;
- import com.amap.api.services.core.LatLonPoint;
- import com.amap.api.services.core.PoiItem;
- import com.amap.api.services.poisearch.PoiItemDetail;
- import com.amap.api.services.poisearch.PoiResult;
- import com.amap.api.services.poisearch.PoiSearch;
- import com.amap.api.services.poisearch.PoiSearch.OnPoiSearchListener;
- import com.amap.api.services.poisearch.PoiSearch.SearchBound;
- import android.app.Activity;
- import android.location.Location;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class SearchActivity extends Activity implements AMapLocationListener,OnPoiSearchListener,OnClickListener {
- LocationManagerProxy mLocationManagerProxy;
- MapView mapView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mapView=(MapView)findViewById(R.id.main_mapView);
- mapView.onCreate(savedInstanceState);
- mLocationManagerProxy=LocationManagerProxy.getInstance(this);
- mLocationManagerProxy.requestLocationData(LocationProviderProxy.AMapNetwork, 2000, 15, this);
- Button button=(Button)findViewById(R.id.button);
- button.setOnClickListener(this);
- }
- @Override
- public void onLocationChanged(Location location) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // TODO Auto-generated method stub
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- }
- @Override
- public void onProviderEnabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderDisabled(String provider) {
- // TODO Auto-generated method stub
- }
- AMapLocation location;
- @Override
- public void onLocationChanged(AMapLocation arg0) {
- // TODO Auto-generated method stub
- location=arg0;
- Log.e("helloworld", arg0.toString());
- }
- @Override
- public void onPoiItemDetailSearched(PoiItemDetail arg0, int arg1) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPoiSearched(PoiResult arg0, int arg1) {
- // TODO Auto-generated method stub
- if(arg1==0){
- List<PoiItem>list=arg0.getPois();
- for(int i=0;i<list.size();i++){
- PoiItem item=list.get(i);
- Log.e("helloworld", item.toString());
- }
- }
- }
- public void search(){
- PoiSearch.Query query=new PoiSearch.Query("杨小贤", "餐饮", "广州市");
- query.setPageSize(10);//每页显示多少个poiitem
- query.setPageNum(0);
- PoiSearch poiSearch=new PoiSearch(this, query);
- poiSearch.setOnPoiSearchListener(this);
- LatLonPoint poinot=new LatLonPoint(location.getLatitude(), location.getLongitude());
- poiSearch.setBound(new SearchBound(poinot, 200000, true));
- poiSearch.searchPOIAsyn();
- }
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- search();
- }
- }
版权声明:Copyright©All right reserved 一捆好葱版权所有,转载请说明出处。
http://blog.csdn.NET/CSDN568302203/article/details/52403706