我正在试图在Google Maps Android API v2中使用自定义图标。 我只是改变了Google提供的一个例子。 我将.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))到方法setUpMap(). RawMapViewDemoActivity中setUpMap(). private void setUpMapIfNeeded() { if (mMap == null) { mMap = ((MapView) findViewById(R.id.map)).getMap(); if (mMap != null) { setUpMap(); } } } private void setUpMap() { mMap.addMarker(new MarkerOptions() .position(new LatLng(0, 0)) .title("Marker") .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); } 但我总是得到一个“IBitmapDescriptorFactory未初始化”。 12-18 15:40:54.356: E/AndroidRuntime(12591): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapdemo/com.example.mapdemo.RawMapViewDemoActivity}: java.lang.NullPointerException: IBitmapDescriptorFactory is […]
我已经添加了片段活动的地图,并添加了几个标记使用addMarker函数,但我能够删除所有标记,我得到不同的标记列表的通知, 现在我想删除所有的标记并添加新的标记。 一种将所有标记保留在列表中并逐个删除的方法(marker.remove()) 有没有更好的方法来清除所有的标记。
是否可以使用新的Google Maps API v2更改myLocation的缩放级别? 如果你设置了GoogleMap.setEnableMyLocation(true); 你在地图上find一个button来find你的位置。 如果你点击它,地图会把你带到你的位置,并放大到一定的水平。 我可以改变这个缩放比较less或更多?
从地图中删除标记的唯一方法是清楚的。 但是它会清除地图上的所有标记。 我想只删除单个标记或一组标记。 我怎么能做到这一点?
我正在尝试在滚动视图中放置Google地图,以便用户可以向下滚动其他内容以查看地图。 问题是,这个滚动视图正在吃掉所有的垂直触摸事件,所以地图的UI体验变得非常奇怪。 我知道在谷歌地图的V1,你可以重写onTouch,或setOnTouchListener调用motionEvent.ACTION_DOWN的requestDisallowInterceptTouchEvent。 我试图用V2来实现类似的技巧无济于事。 到目前为止我已经尝试过: 覆盖SupportMapFragment,并在onCreateView中为View设置一个监听器 调用SupportMapFragment实例的.getView(),然后调用setOnTouchListener 环绕相对布局或框架布局,用透明视图或图像视图遮罩片段 这些都没有解决滚动问题。 我在这里错过了什么? 如果任何人有滚动视图内的地图的工作示例,请你分享代码示例?
我在我的项目中使用Google Maps v2 API。 在Google Maps v2中,debugging/发布API密钥在AndroidManifest.xml定义。 我已经看到了这个链接,但是在这个map中,键是在一个xml布局文件中定义的,而不是在AndroidManifest.xml 。 那么我可以在AndroidManifest.xml为我的项目定义debugging和释放键吗? 我想在AndroidManifest.xml这样的东西: 如果debugging模式: <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/debug_map_api_key"/> 如果发布模式: <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/release_map_api_key"/>
我正在尝试使用Maps API V2来熟悉它,并且试图以用户的当前位置为中心来启动地图。 使用map.setMyLocationEnabled(true); 声明,我可以在地图上显示我的当前位置。 这也将button添加到我的当前位置的中心地图的用户界面。 我想模拟那个button在我的代码。 我熟悉LocationManager和LocationListener类,并意识到使用这些是一个可行的select,但是在用户位置居中和放大的function似乎已经通过button构build。 如果API有一个方法来显示用户的当前位置,那么肯定有一个更容易的方法来居中位置比使用LocationManager / LocationListener类,对吗?
我一直在尝试对一个string进行地理编码来获得它的坐标,但是我的程序总是崩溃,因为当我尝试使用getFromLocationName()它将返回null 。 我一直在努力解决这个问题,但没有任何工作。 这是我的代码 public class MainActivity extends Activity { private GoogleMap mMap; List<Address> addresses; MarkerOptions miami; String myLocation = "Miami,Florida"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (mMap == null) { mMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); } if (mMap != null) { Geocoder geocoder = new Geocoder(this); double latitude = 0; double longitude […]
我正在使用新的Android Google Maps API 。 我创build了一个包含MapFragment的活动。 在活动onResume将标记设置到GoogleMap对象中,然后为包含所有标记的地图定义边界框。 这是使用下面的伪代码: LatLngBounds.Builder builder = new LatLngBounds.Builder(); while(data) { LatLng latlng = getPosition(); builder.include(latlng); } CameraUpdate cameraUpdate = CameraUpdateFactory .newLatLngBounds(builder.build(), 10); map.moveCamera(cameraUpdate); 对map.moveCamera()的调用导致我的应用程序崩溃,出现以下堆栈: Caused by: java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet at maps.am.rb(Unknown Source) at maps.yqa(Unknown Source) at maps.y.au.a(Unknown Source) at maps.y.ae.moveCamera(Unknown […]
我需要画一些这样的东西,这些东西会被涂上,透明度也很低 也需要点击(onTouch事件等) 我知道在API v1中,你必须使用Overlay,并使用canvas和一些math来扩展它。 Google Map API v2最简单的方法是什么? PS:半径是可变的。 (供进一步参考)编辑1: 我实现了CanvasTileProvider子类,并覆盖了它的onDraw()方法: @Override void onDraw(Canvas canvas, TileProjection projection) { // TODO Auto-generated method stub LatLng tempLocation = moveByDistance(mSegmentLocation, mSegmentRadius, mSegmentAngle); DoublePoint segmentLocationPoint = new DoublePoint(0, 0); DoublePoint tempLocationPoint = new DoublePoint(0, 0); projection.latLngToPoint(mSegmentLocation, segmentLocationPoint); projection.latLngToPoint(tempLocationPoint, tempLocationPoint); float radiusInPoints = FloatMath.sqrt((float) (Math.pow( (segmentLocationPoint.x – tempLocationPoint.x), 2) + […]