【问题标题】:Google Maps API Android show Map of address in MapFragmentGoogle Maps API Android 在 MapFragment 中显示地址地图
【发布时间】:2023-03-29 10:09:02
【问题描述】:

我有一个 SupportMapFragment

private GoogleMap mMap;
// ...
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

我想加载特定地址的地图。上面的代码,我在https://developers.google.com/maps/documentation/android/map 得到的。 我还看到了这个帖子Google maps API in Android,它谈到了开始一项活动。我不想这样做,但将其加载到片段中。我该怎么做呢? Google Map (http://developer.android.com/reference/com/google/android/gms/maps/GoogleMap.html) 的 API 也没有合适的方法来加载特定地址的地图。

【问题讨论】:

    标签: android google-maps android-fragments google-maps-android-api-2 supportmapfragment


    【解决方案1】:

    看看这段代码,

        public class MainActivity extends Activity {
      static final LatLng HAMBURG = new LatLng(53.558, 9.927);
      static final LatLng KIEL = new LatLng(53.551, 9.993);
      private GoogleMap map;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
            .getMap();
    
        if (map!=null){
          Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
              .title("Hamburg"));
          Marker kiel = map.addMarker(new MarkerOptions()
              .position(KIEL)
              .title("Kiel")
              .snippet("Kiel is cool")
              .icon(BitmapDescriptorFactory
                  .fromResource(R.drawable.ic_launcher)));
        }
    
      } 
    

    【讨论】:

    • 我还没有检查,但这看起来很棒!非常感谢!
    • 很好地从vogella.com/articles/AndroidGoogleMaps/article.html 复制代码并获得信用!您应该包含指向您引用的代码的链接,尤其是当它只是从其他人的网站粘贴时。
    • @domji84 对不起,伙计,我可以知道我在哪里申请了功劳吗?我有说代码是我的吗?复制这样的简单代码有什么问题?这段代码没有什么特别或难的。我只是通过互联网搜索找到了一个简单的方法并将其提供给 OP。最后,你的问题是什么?
    • 没问题。只是表示我认为文章的链接会很有用,因为它是一个完整的地图 v2 教程,其中包含有关添加标记的信息以及大量其他内容。
    • @domji84 好吧,这就是你应该放置 cmets 的方式。上一个不公平 :)
    【解决方案2】:

    使用 Geocoder 获取所需地址的纬度和经度,然后使用该纬度和经度在地图上添加一个标记,并使用 followinf 语句将相机设置到该点

    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng(your latitude, your longitude), 11));
    

    http://developer.android.com/reference/android/location/Geocoder.html

    【讨论】:

    • 谢谢!为什么需要移动相机?这不会比上面的实现慢吗?还有 moveCamera 调用的开销?
    • 当地图加载时,它将处于完全缩小状态,我认为它不会聚焦到放置的标记位置,因此需要使用相机来聚焦该位置并设置缩放等级。尝试不使用移动相机,看看会发生什么,如果它没有聚焦在标记上,则使用相机。如果它在没有相机的情况下对焦,那么正如您所说,使用相机将是开销。让我知道结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2012-07-17
    • 1970-01-01
    相关资源
    最近更新 更多