Articles of android maps

在Viewpager中映射v2 SupportMapFragment

背景 我成功地将新地图api v2.0添加到ViewPager并且地图加载正常。 我正在使用FragmentViewPager。 我遇到了麻烦,但是当我尝试添加标记时因为我无法获取Fragment by标签,因为我使用的ViewPager来自兼容性库并在XML中定义,这会“隐藏”我的标签。 问题 如何将带有标记SupportMapFragment的新Map v2加载到使用FragmentPagerAdapter的ViewPager中。 我的尝试 因此,我认为可以通过将SupportMapFragment扩展为执行以下操作的新类来创建一个优雅的解决方案: 添加一个采用GoogleMapOptions和List的新构造函数。 这有效地调用了只接受GoogleMapsOptions的现有构造函数,然后将我的标记列表存储在新类的私有属性中。 覆盖GetMap() – 检查它是否为null,如果它没有将标记添加到我们之前加载到地图上的地图,最后返回它。 我的想法是,我的扩展可以高度重用,并抽象任何与一个地方相关的地图,并允许我的活动通过newInstance(myGoogleMapOptions, myMarkers)创建新的MapFragment。 好的问题。 第1部分似乎工作正常,但在调试过程中,我无法调用重写的GetMap()方法。 事实上,我已经尝试重写碎片所具有的大多数常用方法,并且没有一个被调用。 是否有一些奇怪的事情发生在SupportMapFragmemt上,我试图find它的来源无济于事地检查自己。 更新 我意识到为什么我没有得到被覆盖的方法。 这是因为我返回的是标准的SupportMapFragment而不是MyMapFragment 。 也就是说我不能从静态方法调用super,并且我不能毫无例外地从基类转换为派生类。 编辑这是课程 public class MyMapFragment extends SupportMapFragment { private static List mMarkers; public static SupportMapFragment newInstance(GoogleMapOptions options, List markers) { SupportMapFragment fragment = newInstance(options); mMarkers = markers; return fragment; […]

子类化SupportMapFragment会导致NullPointerException

我目前正在使用google-play-services库r3实现我自己的SupportMapFragment子类。 当我尝试将Fragment添加到Activity或ViewPager时,我在库的一个内部类中得到NullPointerException 。 这是相关的堆栈跟踪: java.lang.NullPointerException at maps.yponResume(Unknown Source) at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:115) at android.os.Binder.transact(Binder.java:310) at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onResume(Unknown Source) at com.google.android.gms.maps.SupportMapFragment$a.onResume(Unknown Source) at com.google.android.gms.internal.c$1.a(Unknown Source) at com.google.android.gms.internal.ca(Unknown Source) at com.google.android.gms.internal.c.onResume(Unknown Source) at com.google.android.gms.maps.SupportMapFragment.onResume(Unknown Source) at android.support.v4.app.Fragment.performResume(Fragment.java:1503) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:807) at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1112) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1461) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 显然,此时内部地图为空。 有没有人遇到过这个问题而且有解决方案?

Map API v2授权失败

好吧,这是我用这个例子做的 通过keytool获得调试密钥(确保调试密钥在首选项 – > Android – > Build中由eclipse使用) 通过命令生成密钥 $ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android 复制粘贴在Google API控制台+我的包名称中的SHA1总和: 总和; com.my.package 在Google API控制台的同一项目中启用了Google Map API v2 将其复制到元数据中的Manifest应用程序。 通过SDK管理器下载并导入google-play-services_lib项目并将其作为库项目引用。 以及ActionBarSherlock。 在启动之前,我确保GooglePlayServices可用。 表现: 应用: 还添加了proguard的东西,但我现在没有混淆。 DrugstoresMapActivity扩展了SherlockFragmentActivity project.properties target=android-17 android.library.reference.1=../google-play-services_lib android.library.reference.2=../ActionBarSherlock ActionBarSherlock在libs中有android-support-v4,如果重要的话,不是主项目。 StartupActivity确保只有可用的服务才会启动DrugstoresMapActivity private void attempt() { int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext()); switch (result) { […]

隐藏android google maps API v2中的标记信息窗口

目前,我可以使用Android Google Maps API v2在Google地图中查看我的所有标记。 在地图中添加我的标记: mapView.addMarker (new MarkerOptions() .position(aUsersLocation). icon(BitmapDescriptorFactory.fromBitmap(aUserImage)) .snippet(My_VALUE_1) .title(My_VALUE_2) .hideInfoWindow(); 我有几个标记,并为每个标记的代码段和标题分配了几个值(My_VALUE_1和My_VALUE_2)。 当用户点击标记时,我需要这些唯一值,我将在onMarkerClick监听器中收到以下值: @Override public boolean onMarkerClick(Marker theMarker) { String aValue1 = theMarker.getSnippet(); String aValue2 = theMarker.getTitle(); theMarker.getPosition().latitude… … return false; } 我的问题是:当我将标题和标题值添加到标记时,当用户单击标记时,会显示infoWindow。 我需要隐藏标记的infoWindow。 我尝试使用hideInfoWindow ,但它似乎无法正常工作。 请给我任何建议。 谢谢。

谷歌地图在Android上工作正常,但我仍然收到错误“无法find类’maps.ik’,从方法maps.z.ag.a引用”

我通过下载库,将其添加到工作区,然后将其作为库引用,使Google Maps Android API v2在我的Android应用程序上完美运行。 但是一旦包含Map Fragment的活动开始,我仍然会收到此错误 Could not find class ‘maps.i.k’, referenced from method maps.z.ag.a 顺便说一下,我正在使用支持地图片段 这个错误似乎不会影响我,也不会崩溃应用程序或任何东西,我是否应该费心修复它? 添加了清单 PS E_SelectJourney是我显示和使用地图的地方 添加了logcat 03-26 16:57:14.897: W/dalvikvm(27771): Unable to resolve superclass of Lmaps/p/s; (427) 03-26 16:57:14.897: W/dalvikvm(27771): Link of class ‘Lmaps/p/s;’ failed 03-26 16:57:14.897: W/dalvikvm(27771): Unable to resolve superclass of Lmaps/y/bo; (3820) 03-26 16:57:14.897: W/dalvikvm(27771): Link of […]

Google地图的夜间模式?

我的问题很简单。 谷歌地图有夜间模式吗? 到目前为止,我只能申请GoogleMap.MAP_TYPE_NORMAL | GoogleMap.MAP_TYPE_TERRAIN | GoogleMap.MAP_TYPE_SATELLITE但无法find夜间模式 。 我想要这样的东西 请不要建议我使用叠加 ,我已经尝试过了。 我无法使用它,因为我必须在上面放置标记。 碰到这篇文章,但它已经2岁了,我想应该有一些改进。

谷歌地图为我的位置自定义按钮

如何更改谷歌地图我的位置默认按钮? 我设置了我的位置启用和地图绘制标准图像来查找位置,是否可以更改默认图像?

处理多个地理围栏过渡与公共区域

如果我有这两个地理围栏,在注册这些地理围栏后,当我进入或离开这些圈子的圆周时,我会得到通知。 但是,如果我正在通过公共区域,即从一个圆圈到另一个圆圈,我不希望我的应用程序发送通知。 可能吗? 如果是这样,那怎么样?

在片段中使用Google Map v2的推荐方法是什么?

我想在片段内添加自定义布局的地图。 我可以使用将添加SupportMapFragment的ChildFragmentManager来实现。 我目前正在使用此方法。 但它有缺点,因为子片段事务是异步的,很难保证getMap不会返回null。 另一种方法是从超级onCreateView扩展SupportMapFragment存储mapView mapView = super.onCreateView(inflater, container, savedInstanceState); 并将其插入到膨胀的布局中。 主要问题是,然后片段尝试从保存状态恢复谷歌地图SDK内部粉碎。 有没有其他方法来解决这个问题。 如果谷歌地图团队的某个人会推荐正确的方法,那将是很好的,因为你没有在样本中包含这样的东西。

Google Play服务 – SupportMapFragment.getMap()始终返回null

可能重复: 使用SupportMapFragment时,如何知道地图已准备就绪? 我目前正在测试新的Maps API V2,但我真的无法让它正常工作。 我的问题是getMap()总是返回null。 我已经在3个不同的点测试了这个电话: 的onCreate() 的onResume() 在地图已在屏幕上可见的几秒后调用的处理程序中 这是代码: public class MapActivity extends FragmentActivity { private SupportMapFragment mMapFragment; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setupMap(); } @Override protected void onResume() { super.onResume(); setupMap(); new Handler().postDelayed(new Runnable() { @Override public void run() { setupMap(); } }, 5000); } private void setupMap() { if […]