需要先下载高德地图的 Android SDK和 Android 定位SDK :  http://code.autonavi.com/index

package com.fproject.DXCBuy;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.AMap;import com.amap.api.maps.AMap.InfoWindowAdapter;import com.amap.api.maps.AMap.OnInfoWindowClickListener;import com.amap.api.maps.AMap.OnMarkerClickListener;import com.amap.api.maps.CameraUpdate;import com.amap.api.maps.CameraUpdateFactory;import com.amap.api.maps.LocationSource;import com.amap.api.maps.MapView;import com.amap.api.maps.model.BitmapDescriptorFactory;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 android.location.Location;import android.os.Bundle;import android.text.SpannableString;import android.text.style.ForegroundColorSpan;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import android.app.Activity;import android.graphics.Color;public class ShopMapActivity extends Activity implements LocationSource, AMapLocationListener, OnInfoWindowClickListener, InfoWindowAdapter, OnMarkerClickListener{private PublicData pd;private MapView mapView;private AMap aMap;private OnLocationChangedListener mListener;private LocationManagerProxy mAMapLocationManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shopmap);mapView = (MapView) findViewById(R.id.map);mapView.onCreate(savedInstanceState);init();pd = PublicData.getInstance();}/** * 初始化AMap对象 */private void init() {if (aMap == null) {aMap = mapView.getMap();setUpMap();}}Marker MEIYIDUO;Marker BOLIAN;Marker CUNZHIHUA;private void setUpMap() {// 自定义系统定位小蓝点MyLocationStyle myLocationStyle = new MyLocationStyle();myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.gps));myLocationStyle.strokeColor(Color.BLACK);myLocationStyle.strokeWidth(5);aMap.setMyLocationStyle(myLocationStyle);        // 设置定位资源aMap.setLocationSource(this);// 设置为true表示系统定位按钮显示并响应点击,false表示隐藏,默认是falseaMap.setMyLocationEnabled(true);CameraUpdate update = CameraUpdateFactory.newLatLngZoom(new LatLng(23.041725,113.373472), 17);aMap.moveCamera(update);//添加标记LatLng ll_meiyijia = new LatLng(23.041425,113.37536);LatLng ll_bolian = new LatLng(23.041725,113.373472);LatLng ll_cunzhihua = new LatLng(23.041337,113.372602);MEIYIDUO = aMap.addMarker(new MarkerOptions().position(ll_meiyijia).title("美事多超市").icon(BitmapDescriptorFactory.fromResource(R.drawable.cart_alt)).perspective(true).draggable(true));// 设置远小近大效果,2.1.0版本新增BOLIAN = aMap.addMarker(new MarkerOptions().position(ll_bolian).title("博联超市").icon(BitmapDescriptorFactory.fromResource(R.drawable.cart_alt)).perspective(true).draggable(true));// 设置远小近大效果,2.1.0版本新增CUNZHIHUA = aMap.addMarker(new MarkerOptions().position(ll_cunzhihua).title("春之花超市").icon(BitmapDescriptorFactory.fromResource(R.drawable.cart_alt)).perspective(true).draggable(true));// 设置远小近大效果,2.1.0版本新增aMap.setOnMarkerClickListener(this);aMap.setOnInfoWindowClickListener(this);aMap.setInfoWindowAdapter(this);BOLIAN.showInfoWindow();}/** * 此方法需存在 */@Overrideprotected void onResume() {super.onResume();mapView.onResume();}/** * 此方法需存在 */@Overrideprotected void onPause() {super.onPause();mapView.onPause();deactivate();}/** * 此方法需存在 */@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}/** * 此方法已经废弃 */@Overridepublic void onLocationChanged(Location location) {}/** * 定位成功后回调函数 */@Overridepublic void onLocationChanged(AMapLocation aLocation) {if (mListener != null) {            // 将定位信息显示在地图上mListener.onLocationChanged(aLocation);}}/** * 激活定位 */@Overridepublic void activate(OnLocationChangedListener listener) {mListener = listener;if (mAMapLocationManager == null) {mAMapLocationManager = LocationManagerProxy.getInstance(this);/* * mAMapLocManager.setGpsEnable(false);// * 1.0.2版本新增方法,设置true表示混合定位中包含gps定位,false表示纯网络定位,默认是true */// Location SDK定位采用GPS和网络混合定位方式,时间最短是5000毫秒,否则无效mAMapLocationManager.requestLocationUpdates(LocationProviderProxy.AMapNetwork, 5000, 10, this);}}/** * 停止定位 */@Overridepublic void deactivate() {mListener = null;if (mAMapLocationManager != null) {mAMapLocationManager.removeUpdates(this);mAMapLocationManager.destory();}mAMapLocationManager = null;}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}@Overridepublic View getInfoContents(Marker marker) {return null;}@Overridepublic View getInfoWindow(Marker marker) {View view = getLayoutInflater().inflate(R.layout.custom_info_window, null);ImageView imageView = (ImageView) view.findViewById(R.id.badge);imageView.setImageResource(R.drawable.cart_alt);String title = marker.getTitle();TextView titleUi = ((TextView) view.findViewById(R.id.title));SpannableString titleText = new SpannableString(title);titleText.setSpan(new ForegroundColorSpan(Color.BLACK), 0,titleText.length(), 0);titleUi.setTextSize(15);titleUi.setText(titleText);TextView snippetUi = ((TextView) view.findViewById(R.id.snippet));SpannableString snippetText = new SpannableString("点击进入商店");snippetText.setSpan(new ForegroundColorSpan(Color.GRAY), 0,snippetText.length(), 0);snippetUi.setTextSize(12);snippetUi.setText(snippetText);return view;}@Overridepublic void onInfoWindowClick(Marker arg0) {if(arg0.equals(MEIYIDUO)) {pd.getHandlerMain().sendMsg("enter_shop", "myj");} else if(arg0.equals(BOLIAN)) {pd.getHandlerMain().sendMsg("enter_shop", "bl");} else if(arg0.equals(CUNZHIHUA)) {pd.getHandlerMain().sendMsg("enter_shop", "czh");}this.finish();}@Overridepublic boolean onMarkerClick(Marker arg0) {// TODO Auto-generated method stubreturn false;}}


效果图:

高德地图Android版SDK的应用(定位,添加自定义标记点)_第1张图片


更多相关文章

  1. Android使用RecyclerView实现瀑布流效果的列表展示
  2. Android实现Banner轮播效果
  3. android: slide 滑动动画效果
  4. Android实现win8磁铁效果
  5. android 判断手机是否联网 的方法
  6. Android垂直跑马灯效果
  7. android 弹性效果
  8. Android开源项目分类汇总【老外汇总版本】

随机推荐

  1. Android学习中遇到的问题及解决方案
  2. Android Material Design : CollapsingTo
  3. android mtk6732 camera otp 加载流程
  4. Android应用程序键盘(Keyboard)消息处理机
  5. android ImageView 设置背景选择器select
  6. android 判断网络时打开设置
  7. Android TextView各种使用方法
  8. android AlarmManager
  9. 如何让listview宽度自适应
  10. Android应用程序组件Content Provider的