安卓 GPS 地图

发布于 2024-12-21 01:40:13 字数 4449 浏览 2 评论 0原文

我想制作 GPS 应用程序,我从另一个教程中复制粘贴的代码开始。但是当我测试该应用程序时,它出现空白,并且地图没有出现!有谁可以帮忙吗??!!

这是代码

 package com.manita.mapuse;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;



 public class MapuseActivity extends MapActivity implements LocationListener {
     private MapView  mapView = null;
     private LocationManager  lm = null;
     private double lat = 0;
     private double lng = 0;
     private MapController mc = null;

     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     mapView = (MapView) this.findViewById(R.id.mapView);
     mapView.setBuiltInZoomControls(true);

     lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this);
     lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this);

     mc = mapView.getController();
     mc.setZoom(12);
     }

     @Override
     protected boolean isRouteDisplayed()
     {
     return false;
     }

     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event)
     {
     if (keyCode == KeyEvent.KEYCODE_S)
     {
     mapView.setSatellite(!mapView.isSatellite());
     return true;
     }
     return super.onKeyDown(keyCode, event);
     }

     @Override
     public void onLocationChanged(Location location)
     {
     lat = location.getLatitude();
     lng = location.getLongitude();
     Toast.makeText(getBaseContext(),
     "Location change to : Latitude = " + lat + " Longitude = " + lng,
     Toast.LENGTH_SHORT).show();
     GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
     mc.animateTo(p);
     mc.setCenter(p);
     }

     @Override
     public void onProviderDisabled(String provider)
     {
     // TODO Auto-generated method stub

     }

     @Override
     public void onProviderEnabled(String provider)
     {
     // TODO Auto-generated method stub

     }

     @Override
     public void onStatusChanged(String provider, int status, Bundle extras)
     {
     // TODO Auto-generated method stub

     }
 }

这是manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.manita.mapuse"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="com.google.android.maps" />
        <activity
            android:label="@string/app_name"
            android:name=".MapuseActivity" >
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.LOCATION" />
</manifest>

这是我的MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
 android:id="@+id/mapView"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:enabled="true"
 android:clickable="true"
 android:apiKey="@string/mapKey"
 />
    <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        /> 

</RelativeLayout>

谢谢。

I want to make GPS app and I'm starting with this code which is copy paste from another tutorial. But when I test the app it blank space and the map doesn't appear! Can any one help please??!!

Here is the code

 package com.manita.mapuse;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;



 public class MapuseActivity extends MapActivity implements LocationListener {
     private MapView  mapView = null;
     private LocationManager  lm = null;
     private double lat = 0;
     private double lng = 0;
     private MapController mc = null;

     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     mapView = (MapView) this.findViewById(R.id.mapView);
     mapView.setBuiltInZoomControls(true);

     lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this);
     lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this);

     mc = mapView.getController();
     mc.setZoom(12);
     }

     @Override
     protected boolean isRouteDisplayed()
     {
     return false;
     }

     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event)
     {
     if (keyCode == KeyEvent.KEYCODE_S)
     {
     mapView.setSatellite(!mapView.isSatellite());
     return true;
     }
     return super.onKeyDown(keyCode, event);
     }

     @Override
     public void onLocationChanged(Location location)
     {
     lat = location.getLatitude();
     lng = location.getLongitude();
     Toast.makeText(getBaseContext(),
     "Location change to : Latitude = " + lat + " Longitude = " + lng,
     Toast.LENGTH_SHORT).show();
     GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
     mc.animateTo(p);
     mc.setCenter(p);
     }

     @Override
     public void onProviderDisabled(String provider)
     {
     // TODO Auto-generated method stub

     }

     @Override
     public void onProviderEnabled(String provider)
     {
     // TODO Auto-generated method stub

     }

     @Override
     public void onStatusChanged(String provider, int status, Bundle extras)
     {
     // TODO Auto-generated method stub

     }
 }

Here is the manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.manita.mapuse"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="com.google.android.maps" />
        <activity
            android:label="@string/app_name"
            android:name=".MapuseActivity" >
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.LOCATION" />
</manifest>

and this is my MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainlayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
 android:id="@+id/mapView"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:enabled="true"
 android:clickable="true"
 android:apiKey="@string/mapKey"
 />
    <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        /> 

</RelativeLayout>

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浴红衣 2024-12-28 01:40:13

我假设您正在模拟器上测试代码。看看这个:http:// blogspot.fluidnewmedia.com/2009/04/displaying-google-maps-in-the-android-emulator/

I assume you're testing the code on emulator. Have a look at this: http://blogspot.fluidnewmedia.com/2009/04/displaying-google-maps-in-the-android-emulator/

離人涙 2024-12-28 01:40:13

您是否在 http://code.google.com 上注册了 Android Maps API /android/maps-api-signup.html

为了使用该服务,必须这样做。

Have you signed up for the Android Maps API at http://code.google.com/android/maps-api-signup.html?

It is nessecary to do that in order to use the service.

冰之心 2024-12-28 01:40:13

如果您的应用程序是白色的,一种可能的解决方案是为谷歌地图创建一个新的 API 密钥。我有同样的问题。创建后将其放入清单中即可开始

if your app is white one possible solution is to create a new API key for google maps. I had the same exact problem. After you create it put it inside the manifest and you are good to go

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文