【发布时间】:2019-06-07 05:05:46
【问题描述】:
我最近开始开发一个包含 GPS 跟踪用户位置的 Android 应用程序。 为此,我已经阅读了 Google 设置 Android 版 GoogleMaps API 的指南,并且(据我所知)我完全理解了我到达这里所采取的步骤,包括正确的 API_KEY 和 SHA1 足迹,用于谷歌地图的调试版本. 包含的代码向 google 的 API 发送地图信息请求,并在完全加载后设置地图并在悉尼放置一个标记。 但它没有放置标记。或将地图界面移至悉尼。它只是显示地图,并且出于某种原因似乎每次都以非洲西海岸为中心。
这是我在 Java Activity 代码中所取得的进展:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pkw__route__content__gps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
try {
mapFragment.getMapAsync(this);
}
catch(NullPointerException npe){
npe.printStackTrace();
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney, Australia, and move the camera.
LatLng sydney = new LatLng(-34, 151);
current = mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
片段如下所示:
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="257dp"
android:layout_height="224dp"
android:layout_marginStart="72dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="72dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context=".MapsActivity" />
我已在名为“com.google.android.geo.API_KEY”的标记中将 API 密钥添加到清单中。由于显而易见的原因,我不会在这里发布它。
如前所述,地图初始化正确,但标记未放置,moveCamera 调用也未正确执行
编辑: 我认为这个问题需要更多的背景故事,我在一个片段中使用地图,该片段被集成到另一个活动中。 我认为这很重要的原因是因为我试图通过一个意图启动地图活动,在这种情况下,它将完全加载、放置标记并按应有的交互方式工作。因为所有这些都在 onCreate() 方法中。如何在不必调用 Activity 并停止另一个 Activity 的情况下执行此操作?
【问题讨论】:
标签: android google-maps-android-api-2