我目前正在测试新的Maps API V2,但我真的无法让它正常工作.
我的问题是getMap()总是返回null.
我已经在3个不同的点测试了这个电话:
这是代码:
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 (getSupportFragmentManager().findFragmentById(R.id.fragment) == null) {
mMapFragment = CustomMapFragment.newInstance();
getSupportFragmentManager().beginTransaction()
.add(R.id.map_wrapper, mMapFragment).commit();
}
GoogleMap map = mMapFragment.getMap();
if (map != null) {
mMapFragment.getMap().getUiSettings().setZoomControlsEnabled(true);
mMapFragment.getMap().getUiSettings().setZoomGesturesEnabled(true);
mMapFragment.getMap().setMyLocationEnabled(true);
}
} …Run Code Online (Sandbox Code Playgroud) 我想在片段内添加自定义布局的地图.
onCreateView mapView = super.onCreateView(inflater, container, savedInstanceState);
并将其插入到膨胀的布局中.主要问题是,然后片段尝试从保存状态恢复谷歌地图SDK内部粉碎.
有没有其他方法可以解决这个问题.如果谷歌地图团队的某个人会推荐正确的方法会很好,因为你没有在样本中加入这样的东西.
我在android中使用Google maps api v2.我已经使用纬度和经度放置了一个标记.标记显示在正确的位置,但我希望地图应该只显示标记周围的区域.我想在显示地图时缩放到标记位置,这样它只显示标记的附近区域..任何帮助都将是大.
如果我有这两个地理围栏,在注册这些地理围栏之后,当我进入或退出这些圈子的圆周时,我会得到通知.但是,如果我正在通过公共区域,即从一圈到另一圈,我不希望我的应用程序发送通知.
可能吗?如果是这样,那怎么样?

我正在使用新的GoogleMaps API(v2)并且片段存在一些问题.我的应用程序(Map,List)中有两个片段,用户可以在它们之间切换.到目前为止使用此代码正常工作:
if (itemPosition == 0) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myMapFragment).commit();
} else if (itemPosition == 1) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myListFragment).commit();
}......
Run Code Online (Sandbox Code Playgroud)
当我使用地图时,切换到列表片段,然后返回到地图片段,不保存地图的最后位置.这不是我想要的,我希望地图处于保存状态,因为我"离开"它..我怎么能完成这个?我试图保存相机的位置
public void onSaveInstanceState(Bundle outState){
outState.putDouble("LAT", mMap.getCameraPosition().target.latitude);
outState.putDouble("LON", mMap.getCameraPosition().target.longitude);
outState.putFloat("BEAR", mMap.getCameraPosition().bearing);
...
Run Code Online (Sandbox Code Playgroud)
}
并在onCreateView()中恢复它,但Bundle始终为null.如果我替换片段,则不会调用onSaveInstanceState.
那么如何保存地图的状态呢?
android android-maps android-fragments android-fragmentactivity
我通过下载库,将其添加到工作区,然后将其作为库引用,使Google Maps Android API v2在我的Android应用程序上完美运行.
但是一旦包含Map Fragment的活动开始,我仍然会收到此错误
Could not find class 'maps.i.k', referenced from method maps.z.ag.a
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我正在使用支持地图片段
这个错误似乎不会影响我,也不会崩溃应用程序或任何东西,我是否应该费心修复它?
添加了清单 PS E_SelectJourney是我显示和使用地图的地方
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.HelloMap.AndroidApp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.HelloMap.AndroidApp.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.HelloMap.AndroidApp.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.GET_ACCOUNTS" />
<application
android:allowBackup="true"
android:configChanges="orientation"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.Sherlock" >
<uses-library
android:name="com.google.android.maps"
android:required="true" />
<activity
android:name="com.HelloMap.AndroidApp.A_SplashScreen" …Run Code Online (Sandbox Code Playgroud) android android-maps android-library google-maps-mobile android-debug
我目前正在SupportMapFragment使用google-play-services库r3 实现我自己的子类.
我得到一个NullPointerException在图书馆的内部类中的一个,当我尝试我的片段添加到Activity或ViewPager.这是相关的堆栈跟踪:
java.lang.NullPointerException
at maps.y.p.onResume(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.c.a(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)
Run Code Online (Sandbox Code Playgroud)
显然,此时内部地图为空.
有没有人遇到过这个问题而且有解决方案?
好吧,这是我用这个例子做的
通过命令生成密钥
$ 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可用.
表现:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="com.my.package.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)
应用:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="debug_key"/>
Run Code Online (Sandbox Code Playgroud)
还添加了proguard的东西,但我现在没有混淆.
DrugstoresMapActivity扩展了SherlockFragmentActivity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map_fragment"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
project.properties
target=android-17
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../ActionBarSherlock
Run Code Online (Sandbox Code Playgroud)
ActionBarSherlock在libs中有android-support-v4,如果重要的话,不是主项目.
StartupActivity确保只有可用的服务才会启动DrugstoresMapActivity
private void attempt() { …Run Code Online (Sandbox Code Playgroud) 我有什么:使用Android Maps API v2(本机库)的原生Android应用程序
香港和乌克兰的一切都很好.一旦我们踏入中国边境,问题就出现了.我们有下一个问题:
我对中国的了解:
问题是:
什么是没有想到的答案是"使用百度".我知道百度,这是一个veeryyy备份选项,只要他们有一个api docs in chineese.
需要补充的是,基于ditu.google.cn的Geocoding API运行良好.
期待,谢谢!
android google-maps android-maps google-maps-android-api-2 android-maps-v2
我目前仍然遇到这个问题:谷歌地图似乎根本没有加载.请看下面的图片:

这真让我疯狂.我已经做了以下事情:
这是我片段的代码:
import android.content.Context;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.ErrorDialogFragment;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends Fragment implements OnMapReadyCallback {
private MapFragment mapFragment; …Run Code Online (Sandbox Code Playgroud)