Android使用Google Map API创建的一个根据经纬度定位的程序二

 

Color.xml 文件内容如下:

<? xml version = "1.0" encoding = "utf-8" ?>

< resources >

  < drawable name = "darkgray" > #808080 </ drawable >

  < drawable name = "white" > #FFFFFF </ drawable >

  < drawable name = "blue" > #0000FF </ drawable >

</ resources >

String.xml 文件内容如下:

<? xml version = "1.0" encoding = "utf-8" ?>

< resources >

  < string name = "hello" > Hello World, QueryMapLocation! </ string >

  < string name = "app_name" > QueryMapLocation </ string >

  < string name = "str_longitude" > 经度(Longitude)</ string >

  < string name = "str_latitude" > 纬度(Latitude)</ string >

  < string name = "str_button1" > 查询 </ string >

  < string name = "str_button2" > + </ string >

  < string name = "str_button3" > - </ string >

</ resources >

QueryMapLocation.java 文件的内容如下:

package org.yan;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

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 QueryMapLocation extends MapActivity {

          private MapController mMapController01;

          private MapView mMapView01;

          private Button mButton01,mButton02,mButton03;

          private EditText mEditText01;

          private EditText mEditText02;

          private int intZoomLevel=0;

          private double dLat=25.0402555;

          private double dLng=121.512377;

          @Override

          protected void onCreate(Bundle icicle)

          {

            super.onCreate(icicle);

            setContentView(R.layout.main);

            mMapView01 = (MapView)findViewById(R.id.myMapView1);

            mMapController01 = mMapView01.getController(); 

            mMapView01.setSatellite(false);

            mMapView01.setStreetView(true);

            intZoomLevel = 10;

            mMapController01.setZoom(intZoomLevel);

            refreshMapView();

            mEditText01 = (EditText)findViewById(R.id.myEdit1);

            mEditText02 = (EditText)findViewById(R.id.myEdit2);

            mButton01 = (Button)findViewById(R.id.myButton1);

            mButton01.setOnClickListener(new Button.OnClickListener()

            {

              @Override

              public void onClick(View v)

              {

              

                if(mEditText01.getText().toString().equals("")||

                   mEditText02.getText().toString().equals(""))

                {

                  showDialog(" 不能为空");

                }

                else

                {

                  dLng=Double.parseDouble(mEditText01.getText().toString());

                  dLat=Double.parseDouble(mEditText02.getText().toString());

                  refreshMapView();

                }

              }

            });  

            mButton02 = (Button)findViewById(R.id.myButton2);

            mButton02.setOnClickListener(new Button.OnClickListener()

            {

              @Override

              public void onClick(View v)

              {

                intZoomLevel++;

                if(intZoomLevel>mMapView01.getMaxZoomLevel())

                {

                  intZoomLevel = mMapView01.getMaxZoomLevel();

                }

                mMapController01.setZoom(intZoomLevel);

              }

            }); 

            mButton03 = (Button)findViewById(R.id.myButton3);

            mButton03.setOnClickListener(new Button.OnClickListener()

            {

              @Override

              public void onClick(View v)

              {

                intZoomLevel--;

                if(intZoomLevel<1)

                {

                  intZoomLevel = 1;

                }

                mMapController01.setZoom(intZoomLevel);

              }

            });

          } 

          public void refreshMapView()

          {

            GeoPoint p = new GeoPoint((int)(dLat* 1E6), (int)(dLng* 1E6));

            mMapView01.displayZoomControls(true);

          

            mMapController01.animateTo(p);

            mMapController01.setZoom(intZoomLevel);

          }

          

          @Override

          protected boolean isRouteDisplayed()

          {

            return false;

          }

          private void showDialog(String mess){

            new AlertDialog.Builder(QueryMapLocation.this).setTitle("Message")

            .setMessage(mess)

            .setNegativeButton(" 经度纬度请补全", new DialogInterface.OnClickListener()

            {

              public void onClick(DialogInterface dialog, int which)

              {

              }

            })

            .show();

          }

        }

 

还有一个重要的文件AndroidManifest.xml

<? xml version = "1.0" encoding = "utf-8" ?>

< manifest xmlns:android = "http://schemas.android.com/apk/res/android"

      package = "org.yan"

      android:versionCode = "1"

      android:versionName = "1.0" >

    < application android:icon = "@drawable/icon" android:label = "@string/app_name" >

        < uses-library   android:name = "com.google.android.maps" />

        < activity android:name = ".QueryMapLocation"

                  android:label = "@string/app_name" >

            < intent-filter >

                < action android:name = "android.intent.action.MAIN" />

                < category android:name = "android.intent.category.LAUNCHER" />

            </ intent-filter >

        </ activity >

    </ application >

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

< uses-permission android:name = "android.permission.INTERNET" ></ uses-permission >

< uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION" ></ uses-permission >

< uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" ></ uses-permission >

</ manifest >

3 )运行该Android 项目,即可见到如下界面


输入经度纬度,即可定位到地图上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值