- 论坛徽章:
- 0
|
(1)SendCityName.java:
package com.google.android.citygmapview;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SendCityName extends Activity {
protected static final int REQUEST_SEND_DATA = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
getAndSendCityName();
}
public void getAndSendCityName()
{
Button btn = (Button)findViewById(R.id.confirm);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
EditText edt=(EditText)SendCityName.this.findViewById(R.id.edt);
Intent intent = new Intent();
intent.setClass(SendCityName.this, ShowGmapView.class);
if(edt.getText().length()!= 0) {
String data = edt.getText().toString();
String name="data";
intent.putExtra(name, data);
startSubActivity(intent,REQUEST_SEND_DATA);
}
}
});
}
}
说明:
if(edt.getText().length()!= 0)用来处理用户输入为空的情况,为空时数据不会传递到另外一个activity中去,节省资源。
图示:
![]()
(2)ShowGmapView.java:
package com.google.android.citygmapview;
import java.io.IOException;
import java.util.Locale;
import com.google.android.location.GmmGeocoder;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Point;
import android.location.Address;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.Menu.Item;
public class ShowGmapView extends MapActivity {
private static final int EXIT_ID = 0;
private MapView myMapView;
private Address[] maddrs;
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.gmap_view);
Bundle extras = getIntent().getExtras();
String name="data";
if(extras != null) {
String data1 = extras.getString(name);
GmmGeocoder mgc = new GmmGeocoder(Locale.getDefault());
try {
maddrs = mgc.query(data1, GmmGeocoder.QUERY_TYPE_LOCATION, 0, 0, 180.0, 360.0);
if (null!=maddrs && maddrs.length > 0) {
Log.d("CountryName: ", maddrs[0].getCountryName());
maddrs[0].getLatitude();
} else {
setResult(RESULT_OK, null, extras);
finish();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
myMapView = new MapView(this);
if(null!=maddrs && maddrs.length > 0) {
Point p = new Point((int) (maddrs[0].getLatitude() * 1000000),
(int) (maddrs[0].getLongitude() * 1000000));
/** 地图控制器 */
MapController mc = myMapView.getController();
mc.animateTo(p);
/** 21是最zoom in的一级,一共是1-21级 */
mc.zoomTo(21);
setContentView(myMapView);
/** 切换到卫星地图 */
myMapView.toggleSatellite();
}
setResult(RESULT_OK, null, extras);
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_I) {
/** zoom in */
myMapView.getController().zoomTo(myMapView.getZoomLevel() + 1);
return true;
} else if (keyCode == KeyEvent.KEYCODE_O) {
/** zoom out */
myMapView.getController().zoomTo(myMapView.getZoomLevel() - 1);
return true;
} else if (keyCode == KeyEvent.KEYCODE_S) {
/** 卫星地图 */
myMapView.toggleSatellite();
return true;
} else if (keyCode == KeyEvent.KEYCODE_T) {
/** traffic,路况 */
myMapView.toggleTraffic();
return true;
}
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, EXIT_ID, R.string.exit_gmap);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, Item item) {
super.onMenuItemSelected(featureId, item);
switch(item.getId()) {
case EXIT_ID:
finish();
break;
}
return true;
}
}
说明:
在开始设计时采用了Geocoder这个类,但似乎通过它获取的经纬度为空值,所以最后采取了GmmGeocoder,并能达到目的。
图示:
![]()
(3)main.xml:
(4)gmap_view.xml:
(5)strings.xml:
city gmap view
confirm
Exit google map
(6)AndroidManifest.xml:
以下是整个代码的压缩包:
![]()
文件:
CityGmapView.rar
大小:
38KB
下载:
下载
以上代码可以随意转载和copy,但请转载时加上转载的地址,谢谢大家,毕竟自己做这些也算是奉献自己的休息时间。有问题的朋友可以跟我交流,qq:286505491,Email:
zxgang_andy@sina.com
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43206/showart_1131452.html |
|