@Override public boolean onMarkerClick(Marker marker) { if (!marker.getPosition().equals(myLatLng)){ //点击的marker不是自己位置的那个marker if (oldMarker != null) { oldMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.marker_normal)); } oldMarker = marker; marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.marker_selected)); } return false; //返回 “false”,除定义的操作之外,默认操作也将会被执行 }
@Override public void onMapClick(LatLng latLng) { //点击地图上没marker 的地方,隐藏inforwindow if (oldMarker != null) { oldMarker.hideInfoWindow(); oldMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.marker_normal)); } }
private void initData(Marker marker) { latLng = marker.getPosition(); snippet = marker.getSnippet(); agentName = marker.getTitle(); }
@Override public void onMapClick(LatLng latLng) { aMap.clear(); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng); markerOptions.draggable(true); markerOptions.title("经度:" + latLng.longitude + ",纬度:" + latLng.latitude); aMap.addMarker(markerOptions); this.latLng = latLng; }
private void setLocation(double latitude, double longitude, String address) { LatLng latLng = new LatLng(latitude, longitude); aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15)); Marker marker = aMap.addMarker(new MarkerOptions() .position(latLng) .title(address) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) .draggable(true)); marker.showInfoWindow(); }
private void addMarkerToMap(LatLng latLng, String title, String snippet) { aMap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f) .position(latLng) .title(title) .snippet(snippet) .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_normal)) ); }
@Override public void onMapClick(LatLng latLng) { // 设置当前地图显示为当前位置 // aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng)); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng); markerOptions.title("当前位置"); markerOptions.visible(true); aMap.getMapScreenMarkers().clear(); aMap.addMarker(markerOptions); PoiSearch.Query query = new PoiSearch.Query("", "", ""); query.setPageSize(20); PoiSearch search = new PoiSearch(MapGaodeActivity.this, query); search.setBound(new PoiSearch.SearchBound(new LatLonPoint(latLng.latitude, latLng.longitude), 10000)); search.setOnPoiSearchListener(MapGaodeActivity.this); search.searchPOIAsyn(); } });
/** * 初始化定位 */ private void initLocation(){ // 自定义系统定位小蓝点--我的位置 MyLocationStyle myLocationStyle = new MyLocationStyle(); myLocationStyle.myLocationIcon(BitmapDescriptorFactory .fromResource(R.drawable.mylocation));// 设置小蓝点的图标 myLocationStyle.strokeColor(getResources().getColor(R.color.blue));// 设置圆形的边框颜色 myLocationStyle.radiusFillColor(Color.argb(100, 29, 161, 242));// 设置圆形的填充颜色 myLocationStyle.strokeWidth(1.0f);// 设置圆形的边框粗细 // myLocationStyle.strokeColor(Color.argb(0, 0, 0, 0)); // myLocationStyle.radiusFillColor(Color.argb(0, 0, 0, 0)); aMap.setMyLocationStyle(myLocationStyle); aMap.setLocationSource(this);// 设置定位资源。如果不设置此定位资源则定位按钮不可点击。并且实现activate激活定位,停止定位的回调方法 aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示 aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false }
private void setLocation(double latitude, double longitude, String address) { this.latitude = latitude; this.longitude = longitude; this.address = address; LatLng latLng = new LatLng(latitude, longitude); aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15)); setLabel(address); // Toast.makeText(this, String.format(Locale.getDefault(), "lat:%f,lon:%f,%s", latitude, longitude, address), Toast.LENGTH_SHORT).show(); // Marker marker = aMap.addMarker(new MarkerOptions() // .position(latLng) // .title(address) // .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) // .draggable(true)); // marker.showInfoWindow(); }
MyLocationStyle locationStyle = new MyLocationStyle(); locationStyle.strokeColor(Color.BLUE); locationStyle.strokeWidth(5); aMap.setMyLocationStyle(locationStyle);
protected void showPositionInfo(final LatLng latLng, String posName) { updatePosition(latLng, false); //保存地图选点并返回 AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyThemeGray); builder.setTitle(posName); builder.setMessage(latLng.toString()); builder.setNegativeButton("取消", null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // LatLng desLatLng = MapConvert.convertBaiduToGPS(latLng); SharedPreferences preferences = getSharedPreferences(Constant.TAG, Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("baidulatitude", latLng.latitude + ""); editor.putString("baidulongitude", latLng.longitude + ""); // editor.putString("latitude", desLatLng.latitude + ""); // editor.putString("longitude", desLatLng.longitude + ""); editor.commit(); //MapBaiduActivity.this.finish(); Utils.toast("地图位置已刷新~"); } }); builder.create().show(); }
@Override public void onMapClick(LatLng latLng) { aMap.clear(); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng); markerOptions.draggable(true); markerOptions.title("经度:" + latLng.longitude + ",纬度:" + latLng.latitude); aMap.addMarker(markerOptions); this.latLng = latLng; } }
@Override public void onClick(DialogInterface dialog, int which) { aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(poiItems.get(which).getLatLonPoint().getLatitude(), poiItems.get(which).getLatLonPoint().getLongitude()))); aMap.moveCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel())); dialog.dismiss();
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_amap); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); pacakgeName = getIntent().getStringExtra("package_name"); mv = (MapView) findViewById(R.id.mv); assert mv != null; mv.onCreate(savedInstanceState); aMap = mv.getMap(); Intent intent =getIntent(); double lat = intent.getDoubleExtra("lan",0); double lon = intent.getDoubleExtra("lon",0); LatLng latLng1 = new LatLng(lat, lon); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng1); markerOptions.draggable(true); markerOptions.title("经度:" + latLng1 .longitude + ",纬度:" + latLng1 .latitude); aMap.addMarker(markerOptions); aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng1)); aMap.moveCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel())); aMap.setMapType(AMap.MAP_TYPE_NORMAL); aMap.setOnMapClickListener(this); }
@Override public void onClick(DialogInterface dialog, int which) { aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(poiItems.get(which).getLatLonPoint().getLatitude(), poiItems.get(which).getLatLonPoint().getLongitude()))); aMap.moveCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel())); dialog.dismiss();
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_amap); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); pacakgeName = getIntent().getStringExtra("package_name"); mv = (MapView) findViewById(R.id.mv); assert mv != null; mv.onCreate(savedInstanceState); aMap = mv.getMap(); mSQLiteDatabase = new DbHelper(this).getWritableDatabase(); Cursor cursor = mSQLiteDatabase.query(DbHelper.APP_TABLE_NAME, new String[]{"latitude,longitude"}, "package_name=?", new String[]{pacakgeName}, null, null, null); if (cursor != null && cursor.moveToNext()) { double lat = cursor.getDouble(cursor.getColumnIndex("latitude")); double lon = cursor.getDouble(cursor.getColumnIndex("longitude")); LatLng latLng1 = new LatLng(lat, lon); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng1); markerOptions.draggable(true); markerOptions.title("经度:" + latLng1.longitude + ",纬度:" + latLng1.latitude); aMap.addMarker(markerOptions); aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng1)); aMap.moveCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel())); cursor.close(); } aMap.setMapType(AMap.MAP_TYPE_NORMAL); aMap.setOnMapClickListener(this); }
@Override public void onLocationChanged(AMapLocation aMapLocation) { if (aMapLocation != null) { if(mListener != null){ // aMap.clear(); 清除之前的marker mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点-我的位置 } if (aMapLocation.getErrorCode() == 0) { myLatLng = new LatLng(aMapLocation.getLatitude(), aMapLocation.getLongitude()); aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLatLng, 14)); String city = aMapLocation.getCity(); String address = aMapLocation.getAddress(); // addMarkerToMap(latLng,city,address); } else { //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。 Log.e("AmapError", "location Error, ErrCode:" + aMapLocation.getErrorCode() + ", errInfo:" + aMapLocation.getErrorInfo()); } } }