我有一个Activity与MapFragment我添加到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_wrapper并ProgressDialog再次关闭:
private class GetFlightsTask extends AsyncTask<Double, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// …Run Code Online (Sandbox Code Playgroud) 我的googleMap(v2)带有折线,用于显示用户当前位置和目标点之间的路线.
现在,我想根据用户移动更新折线.
当位置发生变化但折线闪烁时,我尝试重绘整条折线.
我没有找到在的PolylineOptions类的任何适当的功能
(功能的add()仅仅是增加一个顶点,但不更新或删除),
你有什么想法如何更新折线???
谢谢你给我的时间.
我正在尝试将新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
我的一个活动是切换包含谷歌地图的片段.
起初我尝试使用fragment的子片段mananger(ChildFragmentManager)来添加SupportMapFragment.它工作正常,但是每个片段都会再次加载map,这需要花费很多时间.
我无法SupportMapFragment从一个片段分离并将其附加到另一个片段,因为它以某种方式与ViewGroup它首先放置的位置相关联.
所以最后我决定使用MapView在活动中创建的普通对象并将其添加到活动片段的视图组中,并在放入另一个片段的视图组之前将其删除.
一切正常,除了OK onSaveInstanceState(MapView的需要手动通过调用所有活动的生命周期方法,如onResume,onPause,onDestroy,onSaveInstanceState).当我尝试调用mapView.onSaveInstanceState我的活动时,它会破坏应用程序.
我想知道是否还有其他人成功地将GoogleMap重用于多个片段?
我正在尝试使用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是从我的发布证书中获得的,是错的吗?
我试图发布我的应用程序,但谷歌地图有问题.该应用程序包含一个显示地图的活动(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
我目前正在为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应用程序中将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似乎是更优化的解决方案.有没有办法让它更快?这是性能错误吗?
根据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
我3 markers在谷歌地图上.
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)
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
android ×10
android-maps-v2 ×10
google-maps ×5
android-maps ×1
geofencing ×1
java ×1
keytool ×1
performance ×1
surfaceview ×1