【问题标题】:Everything about Map关于地图的一切
【发布时间】:2013-11-28 11:41:15
【问题描述】:

我是安卓编程新手。我想了解GPS。我搜索了一下,我对此有所了解。无论如何,我想使用 Map,在我的项目中使用 com.google.android.maps.MapView 之前,但现在我想了解有关 Map 的一切。除了上述方式之外,在项目中使用地图的方法有哪些?我可以在我的项目中使用com.google.android.maps.MapView 但我没有连接到互联网吗?我的意思是用离线方式显示地图和在地图上搜索的方法是什么?

我搜索过,但我无法得到所有问题的答案 :( 感谢您的建议。

【问题讨论】:

    标签: android google-maps offline-caching


    【解决方案1】:

    要开始使用 Google 地图,您可以参考此链接 https://developers.google.com/maps/documentation/android/start 同时 MapView 现在已弃用,因此您必须使用 Google 地图版本 2。

    示例代码:http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/ 万事如意..

    【讨论】:

    • 感谢您的快速回复。你的意思是,我可以在离线模式和在线模式下使用 MapView 吗?我读了这个链接,我想,我用另一种方式来离线模式! stackoverflow.com/questions/6109369/…
    • 我不太确定地图的离线模式..让我搜索
    【解决方案2】:

    您应该使用片段。布局上就是这样;

    <fragment
       android:name="com.google.android.gms.maps.SupportMapFragment"
       android:id="@+id/myMapView"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:clickable="true" />
    

    要使用它,您应该将 google-play-services_lib 项目添加到您的项目构建路径中。 然后在你的课堂上你应该像这样实现 FragmentActivity;

    public class Main extends FragmentActivity{
    
    private GoogleMap mMap;
    
    UiSettings settings;
    MapController mapController;
    GeoPoint geopoint;
    RectF oval;
    Canvas canvas;
    int mRadius = 5;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setUpMap();
    }
    
    @Override
    protected void onResume(){
        super.onResume();
        setUpMap();
    }
    
    private void setUpMap(){
        if (mMap != null) {
            return;
        }
        mMap=((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.myMapView)).getMap();
        if (mMap == null) {
            return;
        }
        mMap.setMyLocationEnabled(true);
        mMap.getUiSettings().setCompassEnabled(true);
        mMap.getUiSettings().setMyLocationButtonEnabled(true);
    
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(place1, 15));
        mMap.setTrafficEnabled(true);
        mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);           
    
    }
    

    您应该从link 获取 google maps 的 apikey,或者您可以从 link 逐步继续

    像这样将你的 apikey 和权限添加到 Manifest 文件中;

    <uses-permission android:name="your_package.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
    <meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="your_api_key"/> 
    

    注意:元数据必须在清单中的应用程序内。

    【讨论】:

    • 谢谢@Droid。但是当我使用 GoogleMap 时,我应该使用“INTERNET”吗?因为您在清单文件中使用互联网许可。我很困惑。请告诉我在android中以离线模式显示地图的方法是什么?
    • 还有一件事,为了使用 GoogleMap,我应该使用 Fragment 吗?我可以在我的布局中使用“MapView”之类的东西吗?谢谢
    • 我不知道离线映射。 Google Maps Api 同时使用 gps 和互联网连接。因此,我添加了 Internet 权限。然后在我看来,使用片段的谷歌地图 v2 api 最简单的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2016-03-25
    • 2012-08-02
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多