如何在Google Maps Android API V2中将当前位置显示为箭头?

我正在使用Google Maps Android API V2。 当我使用Googlemap setMyLocationEnabled(true)时,当前位置显示为蓝点。 我怎样才能显示当前位置作为可以指示当前标题的闪烁箭头?

Solutions Collecting From Web of "如何在Google Maps Android API V2中将当前位置显示为箭头?"

移动!

如果设备静止,位置将在地图上以小蓝点表示,如果设备在移动,则位置将显示为人字形。

来自Google Maps v2文档

使用下面的工作来获得当前的位置

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); String provider = locationManager.getBestProvider(criteria, false); Location location = locationManager.getLastKnownLocation(provider); if (location != null) { System.out.println("Provider " + provider + " has been selected."); onLocationChanged(location); } Geocoder geocoder = new Geocoder(ViewTestDrive.this, Locale.getDefault()); List<Address> addresses = null; try { addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); } catch (IOException e) { e.printStackTrace(); // Update address field with the exception. //Message.obtain(mHandler, UPDATE_ADDRESS, e.toString()).sendToTarget(); } String addressText = null; if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); // Format the first line of address (if available), city, and country name. addressText = String.format("%s, %s, %s", address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "", address.getLocality(), address.getCountryName()); // Update address field on UI. //Message.obtain(mHandler, UPDATE_ADDRESS, addressText).sendToTarget(); } Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr="+addressText+"&daddr="+)); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(intent); @Override public void onLocationChanged(Location location) { int lat = (int) (location.getLatitude()); int lng = (int) (location.getLongitude()); String.valueOf(lat); String.valueOf(lng); } @Override public void onProviderDisabled(String provider) { Toast.makeText(this, "Disabled provider " + provider, Toast.LENGTH_SHORT).show(); } @Override public void onProviderEnabled(String provider) { Toast.makeText(this, "Enabled new provider " + provider, Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } 

(对不起,我来不及回答,希望你们这个时候解决问题。)

您可以自定义标记应该以一些简单的步骤出现的方式。 以下是实现此目的所需的代码部分。

 //You need a GoogleMap object to deal with the map functionality. private GoogleMap map; ... //Find Your Map view from layout map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); //This method will do the rest needed showMarker(userLatitude, userLongitude) ... ... // Pass the desired latitude and longitude to this method public void showMarker(Double lat, Double lon) { map.clear(); // Create a LatLng object with the given Latitude and Longitude LatLng markerLoc = new LatLng(lat, lon); //Add marker to map map.addMarker(new MarkerOptions() .position(markerLoc) // at the location you needed .title("Desired Title") // with a title you needed .snippet("Any summary if needed") // and also give some summary of available .icon(BitmapDescriptorFactory.fromResource(R.drawable.your_flashing_arrow_anim_drawable))); // and give your animation drawable as icon } // To work these functionalities, you may require the following imports import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; 

最后,布局应该包含像MAP这样的条目

 <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> 

希望这也能解决一些其他问题… 🙂

根据这篇文章 ,默认情况下或通过Android上的API获取Google的Google地图应用中看到的蓝色箭头是不可能的 。 我得出这样的结论:我们可能为了这个特点而独立工作。 只是我2美分。