标签: android-maps-v2

谷歌地图v2从堆栈弹出片段后滞后

我有一个ActivityMapFragment我添加到Activity编程使用FragmentTransaction:

private static final String MAP_FRAGMENT_TAG = "map";
private MapFragment mapFragment = null;

...

protected void onCreate(Bundle savedInstanceState) {

    ...

    mapFragment = (MapFragment) getFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);
    if (mapFragment == null) {
        mapFragment = MapFragment.newInstance();
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.fragment_wrapper, mapFragment, MAP_FRAGMENT_TAG);
        fragmentTransaction.commit();
    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

标准方式.然后我从中获取GoogleMap实例mapFragment并设置其设置,设置监听器,用它做事.一切正常.

然后当用户完成地图时,AsyncTask触发显示a ProgressDialog,执行一些操作,将不同的片段放入fragment_wrapperProgressDialog再次关闭:

private class GetFlightsTask extends AsyncTask<Double, Void, String> {

@Override
protected void onPreExecute() {
    super.onPreExecute();
    // …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-maps-v2

8
推荐指数
1
解决办法
3767
查看次数

根据移动android googleMaps v2的用户更新折线

我的googleMap(v2)带有折线,用于显示用户当前位置和目标点之间的路线.
现在,我想根据用户移动更新折线.

当位置发生变化但折线闪烁时,我尝试重绘整条折线.

我没有找到在的PolylineOptions类的任何适当的功能
(功能的add()仅仅是增加一个顶点,但不更新或删除),

你有什么想法如何更新折线???
谢谢你给我的时间.

android google-maps android-maps-v2

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

在ListView中,新的gms.maps.MapView渲染有点滞后?

我正在尝试将新MapView的实例放在ListView中.新的mapview是:

com.google.android.gms.maps.MapView
Run Code Online (Sandbox Code Playgroud)

我正在关闭所有交互,并为视图设置固定高度:

GoogleMapOptions options = new GoogleMapOptions();
    options.mapType(GoogleMap.MAP_TYPE_NORMAL);
    options.compassEnabled(false);
    options.rotateGesturesEnabled(false);
    options.scrollGesturesEnabled(false);
    options.tiltGesturesEnabled(false);
    options.zoomControlsEnabled(false);
    options.zoomGesturesEnabled(false);

mMapView = new MapView(getActivity(), options);
mMapView.setLayoutParams(new AbsListView.LayoutParams(
    AbsListView.LayoutParams.MATCH_PARENT,
    200));
mMapView.setEnabled(false);
mMapView.setFocusable(false);
getListView().addHeaderView(mMapView);
getListView().addAdapter(simpleArrayAdapter);
Run Code Online (Sandbox Code Playgroud)

这很有效,但如果我快速滚动列表视图,看起来mapview渲染会稍微滞后,所以你可以在滚动方向看到一小块黑色像素.

这几乎看起来似乎是某种同步问题,因为我猜测使用opengl的mapview足够快以响应我的滚动进行渲染.此外,旧的MapView + MapActivity在相同的设置中也可以正常运行.

下面是快速滚动时出现间隙的图片.经过一段时间后,mapview将赶上并再次渲染.

在此输入图像描述

有什么想法吗?

谢谢

-----更新---------

此问题看起来与以下内容相同:

使用Google Maps API v2的ViewPager:神秘的黑色视图

但是我无法在此设置中记录那里的修复程序.

android google-maps surfaceview android-maps android-maps-v2

7
推荐指数
1
解决办法
1715
查看次数

在单个Activity中将Google Map v2重用于多个片段

我的一个活动是切换包含谷歌地图的片段.

起初我尝试使用fragment的子片段mananger(ChildFragmentManager)来添加SupportMapFragment.它工作正常,但是每个片段都会再次加载map,这需要花费很多时间.

我无法SupportMapFragment从一个片段分离并将其附加到另一个片段,因为它以某种方式与ViewGroup它首先放置的位置相关联.

所以最后我决定使用MapView在活动中创建的普通对象并将其添加到活动片段的视图组中,并在放入另一个片段的视图组之前将其删除.

一切正常,除了OK onSaveInstanceState(MapView的需要手动通过调用所有活动的生命周期方法,如onResume,onPause,onDestroy,onSaveInstanceState).当我尝试调用mapView.onSaveInstanceState我的活动时,它会破坏应用程序.

我想知道是否还有其他人成功地将GoogleMap重用于多个片段?

android android-mapview android-maps-v2

7
推荐指数
1
解决办法
905
查看次数

Google Maps Android API v2:无法加载地图.无法与Google服务器联系

我正在尝试使用Google Maps Android API v2,我已经从我的发布证书中创建了SHA1密钥.

我读过从注释在这里,并已取得的一切权利,包括权限READ_GSERVICES这是不是在谷歌的说明中规定这里

但是我仍然有错误

E/Google Maps Android API(12334):无法加载地图.无法联系Google服务器.

如果我还有遗漏的东西,无论如何可以启发我吗?

我也包括了这个:

<permission
      android:name="com.example.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
Run Code Online (Sandbox Code Playgroud)

<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my_api_key"/>
Run Code Online (Sandbox Code Playgroud)

在我的applcation标签中.

更新:刚刚管理删除该错误,认为我错误地键入了我的READ_GSERVICES.

但是,现在我遇到了这个问题:

01-24 16:58:08.628:E/Google Maps Android API(28025):授权失败.

是什么导致了这个问题?我的SHA1是从我的发布证书中获得的,是错的吗?

android android-maps-v2

7
推荐指数
2
解决办法
8964
查看次数

Google地图未在发布模式下显示在Android上

我试图发布我的应用程序,但谷歌地图有问题.该应用程序包含一个显示地图的活动(MapActivity).在调试模式下运行时,地图工作正常.我在发布模式下签署了我的应用程序,并获得了SHA1.我根据需要在Google控制台上创建了一个新的Android密钥(SHA1; packageName).获得了API密钥

在我的应用程序中,我根据需要引用了google-play-services-lib的副本.我正在使用ADT.

map.xml

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)

MapActivity.java

public class MapActivity extends FragmentActivity {

private GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                        .getMap();
  }
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rentalcar"
android:versionCode="1"
android:versionName="1.0" >



<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>

<permission
      android:name="com.example.rentalcar.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.rentalcar.permission.MAPS_RECEIVE"/>


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
     >

    <activity …
Run Code Online (Sandbox Code Playgroud)

android google-maps keytool android-keystore android-maps-v2

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

使用viewPager映射V2

我目前正在为Android 4.3开发.
背景:
我正在使用pageViewer在三个不同的片段之间滚动.我的第二个片段(标签2)包含带有SupportMapFragment和其他内容的XML.如下图所示:
我的问题http://imageupload.co.uk/files/vrhg1e06x977rkm1vhmd.jpg
我的尝试:
在网上搜索时我注意到对于SupportMapFragment,我需要FragmentActivity,它不适用于FragmentPagerAdapter.我需要用户能够控制地图以及控制片段中的其余内容.
我的问题:
如何在Fragment中拥有更多内容的同时将SupportMapFragment与viewPager一起使用?

关于我的代码的更多信息: 在FragmentPagerAdapter里面的getItem中我返回Singleton Fragments(每个Fragment都有一个类)因此我无法通过Internet找到任何解决方案,因为我的类无法扩展SupportMapFragment,因为它有更多的数据.

android android-viewpager android-maps-v2

7
推荐指数
1
解决办法
7069
查看次数

谷歌地图v2 Projection.toScreenLocation(...)非常慢

我已在Android应用程序中将Google Maps v1升级到v2.

而v2很不错,但是一种方法似乎是我生命中最慢的方法.

Projection proj = map.getProjection();
Point point = proj.toScreenLocation(example.m_geopoint);
Run Code Online (Sandbox Code Playgroud)

toScreenLocation(...)是如此之慢,因此应用程序减慢到无法使用的慢动作.该方法每帧更新可能100次,但在Google Maps v1上的效果非常好.

当我在Android Console中检查时,我看到了这个:

10-06 13:53:04.460: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+5ms
10-06 13:53:05.859: D/dalvikvm(4889): GC_EXPLICIT freed 252K, 14% free 14622K/16839K, paused 2ms+5ms
10-06 13:53:07.222: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+6ms
...
Run Code Online (Sandbox Code Playgroud)

调用该方法时,此消息始终显示.

v2和v1之间的区别是:

pointOut = proj.toScreenLocation(geopointIn); // v2
projection.toPixels(geopointIn, pointOut); // v1
Run Code Online (Sandbox Code Playgroud)

而v1似乎是更优化的解决方案.有没有办法让它更快?这是性能错误吗?

java performance android google-maps android-maps-v2

7
推荐指数
1
解决办法
933
查看次数

Android:构建多边形形状地理围栏

根据API文档,只有圆形Geofences允许:

https://developers.google.com/android/reference/com/google/android/gms/location/Geofence.Builder

它的例子如下:https://developer.android.com/training/location/geofencing.html

但我有4个位置,代表矩形的4个角,我希望我的地理围栏是那个矩形.

我想避免构建我的自定义位置监控服务的解决方案,扩展监控Geofences的功能,因为我认为这种服务是CPU和耗电的......

谢谢,

android geofencing android-maps-v2 android-maps-extensions android-geofence

7
推荐指数
1
解决办法
5577
查看次数

折线路径上的动画标记

3 markers在谷歌地图上.

  1. Two Markers 显示 starting and ending points

以下是用于在这两点之间绘制折线的代码:

private void polyLine() {

    LatLng starting = new LatLng(##.######, ##.######);
    LatLng ending = new LatLng(##.######, ##.######);

    PolylineOptions line = new PolylineOptions().add(starting, ending);

    mGoogleMap.addMarker(new MarkerOptions().position(starting).title("Start"));
    mGoogleMap.addMarker(new MarkerOptions().position(ending).title("End"));

    mGoogleMap.addPolyline(line);

}
Run Code Online (Sandbox Code Playgroud)
  1. One Marker显示current Location[HUE_ROSE]

animate marker to current location使用:

@Override
public void onLocationChanged(Location location)
{
    Toast.makeText(this, "Location Changed " + location.getLatitude()
            + location.getLongitude(), Toast.LENGTH_LONG).show();

    mLastLocation = location;

    if (mCurrLocationMarker != null) { …
Run Code Online (Sandbox Code Playgroud)

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

7
推荐指数
1
解决办法
1933
查看次数