标签: android-maps-v2

GoogleService无法初始化

我在我的Android应用程序中使用谷歌地图.我已经创建了密钥并在清单文件中添加了必要的权限.但很快我启动应用程序,我在调试器中收到此消息:

GoogleService初始化失败,状态:10,缺少预期资源:'R.string.google_app_id'用于初始化Google服务.可能的原因是缺少google-services.json或com.google.gms.google-services gradle插件.

我不确定什么是错的.地图工作正常,我可以毫无问题地使用它.我的gradle文件有这个条目:

编译'com.google.android.gms:play-services:8.4.0'

什么是抱怨,我该如何缓解它?

android google-maps android-mapview android-maps-v2

112
推荐指数
3
解决办法
10万
查看次数

更改Google Maps API的"我的位置"按钮的位置

我正在使用谷歌地图Android API v2,我需要一种方法来获取"我的位置"按钮的位置.

我得到这样的"我的位置"按钮:

GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
final GoogleMap map = ((SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map)).getMap();

// This gets the button
map.setMyLocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

java android google-maps-android-api-2 android-maps-v2

83
推荐指数
9
解决办法
7万
查看次数

TileProvider使用本地磁贴

我想使用TileProvider最新Android Maps API(v2)的新功能覆盖一些自定义磁贴GoogleMap.但是由于我的用户很多时候都不会上网,我想把瓷砖存储在设备上的zipfile /文件夹结构中.我将使用Maptilerwith 生成我的瓷砖geotiffs.我的问题是:

  1. 将瓷砖存放在设备上的最佳方法是什么?
  2. 我如何创建一个返回本地区块的TileProvider?

android google-maps android-maps-v2

71
推荐指数
2
解决办法
6万
查看次数

Android谷歌地图标记禁用导航选项

我正在创建一个应用程序,用户需要走到地图上的某个点.但是他们需要找到一条通往他们自己的路线.我创建了一个带标记的地图,但默认情况下,如果用户点击标记,则会显示"开始导航"和"谷歌地图中的视图"选项.是否可以禁用这些选项?

标记点击时显示的选项

标记点击时显示的选项

android google-maps-markers google-maps-android-api-2 android-maps-v2

66
推荐指数
1
解决办法
1万
查看次数

Google Maps V2 - Android - 获取当前缩放级别

如何在GoogleMap上将当前缩放级别作为整数获取.我需要从GMaps v1.1获取此代码:

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();
Run Code Online (Sandbox Code Playgroud)

我知道方法getMinZoomLevel()和getMaxZoomLevel()但是我在Android GMap V2文档中找不到任何可以提供当前缩放级别的内容.有没有人有关于如何做到这一点的任何指示?

任何帮助,将不胜感激.

java android google-maps-android-api-2 android-maps-v2

60
推荐指数
3
解决办法
4万
查看次数

第二次打开SupportMapFragment时出错

当我第二次打开我的SupportMapFragment(Android maps v2)(调用setContentView)时,我收到以下错误:

01-28 16:27:21.374: E/AndroidRuntime(32743): FATAL EXCEPTION: main
01-28 16:27:21.374: E/AndroidRuntime(32743): android.view.InflateException: Binary XML file line #6: Error inflating class fragment
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.view.View.inflate(View.java:16119)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at mypackage.MyView.<init>(HitsView.java:26)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at mypackage.MenuListFragment.onItemClick(MenuListFragment.java:133)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.widget.AdapterView.performItemClick(AdapterView.java:298)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
01-28 16:27:21.374: E/AndroidRuntime(32743):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:2855)
01-28 16:27:21.374: E/AndroidRuntime(32743): …
Run Code Online (Sandbox Code Playgroud)

android supportmapfragment android-maps-v2

54
推荐指数
3
解决办法
3万
查看次数

移动MapFragment(SurfaceView)会导致黑色背景闪烁

我正在尝试实施新的Android Google Maps API(v2).然而,它与SlidingMenu似乎并不顺利.如您所知,MapFragment实施基于SurfaceView.问题是SurfaceView它不喜欢移动它 - 我的意思是把它放在可移动的视图中:

移动它时,它会在其像素最初放置的位置留下黑洞.它看起来像这样.

通过在其上指定透明背景SurfaceView或者甚至在其上放置透明可以部分地解决该问题View.我只是无法想象,如果只是对我来说结果是不可接受的,或者我有一个不同的问题,使它看起来如何.

要查看它的外观,请观看此视频.

(对不起质量,但无论如何都可以轻松看到问题)

当打开时拉开正常的列表视图(橙色屏幕)时SlidingMenu,动画很流畅.但是一MapFragment出现,地图上就会出现一些奇怪的刷新/闪烁/同步问题.

在HTC One S和三星Galaxy ACE上测试过.


我解决它的超级疯狂的想法:每次开始动画开始时,截取MapFragment(应该可以使用SurfaceView)并在动画期间将其放置.但我真的不知道该怎么做...... 拍摄地图的截图是不可能的,但也许有人会从中受到启发.

或者也许禁用以其他方式重绘地图,我不知道.


更新:

发现了这个.

看起来SurfaceView可以更改为TextureView以消除这些限制.但由于MapFragment基于SurfaceView,我不知道它是否可以实现.

另一个更新 似乎此问题已在4.1+设备上得到解决.他们只使用了TextureView.但在较低版本中,我们仍然需要使用变通方法.

android surfaceview android-maps mapfragment android-maps-v2

53
推荐指数
2
解决办法
2万
查看次数

在Google Map版本2中将图像从drawable设置为标记

我正在使用此部分代码MapFragment在Google Map版本2中添加标记.

MarkerOptions op = new MarkerOptions();
op.position(point)
    .title(Location_ArrayList.get(j).getCity_name())
    .snippet(Location_ArrayList.get(j).getVenue_name())
    .draggable(true);
m = map.addMarker(op); 
markers.add(m);
Run Code Online (Sandbox Code Playgroud)

我想使用我的drawable中的不同图像.

android marker android-maps-v2

53
推荐指数
4
解决办法
8万
查看次数

偏离MapFragment的中心以获取移动目标lat/lng和缩放级别的动画

我有一个UI,它有一个MapFragment,透明视图覆盖在它上面.地图占据整个屏幕,而视图只占屏幕的左三分之一.结果,地图的默认"中心"关闭.当有人点击标记时,我想将该标记居中在MapFragment的整个可见区域(而不是MapFragment本身的中心).

由于这很难用文字描述,让我用几张图片.假设这是我的UI看起来的样子:

默认地图

当用户点击一个标记时,我想要将它居中放大以便更接近它.没有任何调整,这是你会得到的:

使用错误的居中标记映射

我想要的是标记居中,但在右边的空间,如下所示:

使用正确居中的标记映射

如果您不使用地图投影更改缩放级别,则很容易实现此专长:

// Offset the target latitude/longitude by preset x/y ints
LatLng target = new LatLng(latitude, longitude);
Projection projection = getMap().getProjection();
Point screenLocation = projection.toScreenLocation(target);
screenLocation.x += offsetX;
screenLocation.y += offsetY;
LatLng offsetTarget = projection.fromScreenLocation(screenLocation);

// Animate to the calculated lat/lng
getMap().animateCamera(CameraUpdateFactory.newLatLng(offsetTarget));
Run Code Online (Sandbox Code Playgroud)

但是,如果您同时更改缩放级别,则上述计算不起作用(因为lat/lng偏移在不同的缩放级别发生变化).

让我来看一下尝试修复的列表:

  • 快速更改缩放级别,进行计算,缩放回原始摄像机位置,然后设置动画.不幸的是,突然的相机改变(即使它只是一瞬间)很遗憾非常明显,我想避免闪烁.

  • 将两个MapFragments叠加在一起,让一个执行计算,而另一个显示.我发现MapFragments并不是真正构建成彼此叠加的(这条路线上有不可避免的错误).

  • 通过缩放级别平方的差异修改屏幕位置的x/y.从理论上讲,它应该可以工作,但它总是相当长一段时间(〜.1纬度/经度,足够远离它).

有没有办法计算offsetTarget即使缩放级别改变?

android android-maps-v2

49
推荐指数
4
解决办法
2万
查看次数

在Android模拟器上运行Google Maps v2

我试图在我的Android应用程序中实现Google Maps v2,但遗憾的是,我收到了以下消息:

如果没有手机中遗漏的Google Play服务,此应用将无法运行.

是否可以在Android模拟器(平台4.2)上运行这些地图?

android android-virtual-device android-emulator google-play-services android-maps-v2

46
推荐指数
4
解决办法
12万
查看次数