- 浏览: 112083 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
liubang201010:
可看看此文:http://www.goodu.info/gc/ ...
基于Android手机开发平台的移动数字图书馆服务系统研究 -
chenhaodejia:
hbxflihua 写道你好,在加载xml的时候能不能像htm ...
android自定义Spinner下拉菜单样式并获得选项的值 -
chenhaodejia:
心灵花园2010 写道你好,问下服务端该怎么去搭建?
什么意思 ...
基于Android手机开发平台的移动数字图书馆服务系统研究 -
心灵花园2010:
你好,问下服务端该怎么去搭建?
基于Android手机开发平台的移动数字图书馆服务系统研究 -
hbxflihua:
你好,在加载xml的时候能不能像html页面的select标签 ...
android自定义Spinner下拉菜单样式并获得选项的值
以下代码主要实现的是根据地址名得到经纬度,并在地图上显示及路线规划,导航。收藏路线和查看路线。
源代码:
package com.logistics;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.maps.GeoPoint;
public class Map_index extends Activity {
private GeoPoint fromGeoPoint, toGeoPoint;
private EditText mEditText01;
private EditText mEditText02;
private Button mButton01,mButton02;
private String TAG = "HIPPO_GEO_DEBUG";
public static final int SAVEROUTE = Menu.FIRST;
public static final int ROUTELIST = Menu.FIRST + 1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_citytocity);
mButton01 = (Button) findViewById(R.id.search_route);
mButton02 = (Button) findViewById(R.id.map_cancel);
mEditText01 = (EditText) findViewById(R.id.search_startingpoint);
mEditText01.setText(getResources()
.getText(R.string.str_default_starting_point).toString());
mEditText02 = (EditText) findViewById(R.id.search_destination);
mEditText02.setText(getResources()
.getText(R.string.str_default_address).toString());
// 按钮 查询地址规划路径
mButton01.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) { // 选择方式
final CharSequence[] items = { "乘车", "步行", "驾车" };
AlertDialog.Builder builder = new AlertDialog.Builder(
Map_index.this);
builder.setTitle("选择交通方式");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
StringBuilder params = new StringBuilder()
.append("&dirflg=");
switch (item) {
case 0:
params.append("r");
break;
case 1:
params.append("w");
break;
case 2:
params.append("d");
break;
default:
break;
}
getMap(params.toString());
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
// 取消
mButton02.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
// TODO Auto-generated method stub
protected void getMap(String params) {
if (mEditText01.getText().toString() != ""
& mEditText01.getText().toString() != "") {
/* 取得User要前往的GeoPoint对象 */
fromGeoPoint = getGeoByAddress(mEditText01.getText().toString());
toGeoPoint = getGeoByAddress(mEditText02.getText().toString());
/* 路径规划Intent */
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
/* 传入路径规划所需要的地标地址 */
intent.setData(Uri.parse("http://maps.google.com/maps?f=d&saddr="
+ GeoPointToString(fromGeoPoint) + "&daddr="
+ GeoPointToString(toGeoPoint) + "&hl=cn&t=m&" + params));
// 强制使用谷歌地图打开
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
& Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setClassName("com.google.android.apps.maps",
"com.google.android.maps.MapsActivity");
startActivity(intent);
}
}
/* 从输入的Address地址,取得其GeoPoint对象 */
private GeoPoint getGeoByAddress(String strSearchAddress) {
GeoPoint gp = null;
try {
if (strSearchAddress != "") {
Geocoder mGeocoder01 = new Geocoder(Map_index.this, Locale
.getDefault());
List<Address> lstAddress = mGeocoder01.getFromLocationName(
strSearchAddress, 1);
if (!lstAddress.isEmpty()) {
Address adsLocation = lstAddress.get(0);
double geoLatitude = adsLocation.getLatitude() * 1E6;
double geoLongitude = adsLocation.getLongitude() * 1E6;
gp = new GeoPoint((int) geoLatitude, (int) geoLongitude);
} else {
Log.i(TAG, "Address Geopoint not Found.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
return gp;
}
/* 将Geopoint里的经纬度以String,String返回 */
private String GeoPointToString(GeoPoint gp) {
String strReturn = "";
try {
/* 当Location存在 */
if (gp != null) {
double geoLatitude = (int) gp.getLatitudeE6() / 1E6;
double geoLongitude = (int) gp.getLongitudeE6() / 1E6;
strReturn = String.valueOf(geoLatitude) + ","
+ String.valueOf(geoLongitude);
}
} catch (Exception e) {
e.printStackTrace();
}
return strReturn;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, SAVEROUTE, 0, "收藏路线")
.setIcon(getResources().getDrawable(R.drawable.list_add));
menu.add(0, ROUTELIST, 1, "路线列表")
.setIcon(getResources().getDrawable(R.drawable.business));
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case SAVEROUTE:
Long mRowId=-1L;
Intent intent1 = new Intent(Map_index.this,
MapCollectionPath.class);
Bundle fpoint = new Bundle();
fpoint.putLong("mRowId", mRowId);
fpoint.putString("fav_startingpoint", mEditText01.getText()
.toString());
fpoint.putString("fav_destination", mEditText02.getText()
.toString());
fpoint.putString("title","");
intent1.putExtras(fpoint);
startActivity(intent1);
break;
case ROUTELIST:
Intent intent2 = new Intent(Map_index.this, MapList.class);
startActivity(intent2);
break;
}
return super.onOptionsItemSelected(item);
}
}
源代码:
package com.logistics;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.maps.GeoPoint;
public class Map_index extends Activity {
private GeoPoint fromGeoPoint, toGeoPoint;
private EditText mEditText01;
private EditText mEditText02;
private Button mButton01,mButton02;
private String TAG = "HIPPO_GEO_DEBUG";
public static final int SAVEROUTE = Menu.FIRST;
public static final int ROUTELIST = Menu.FIRST + 1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_citytocity);
mButton01 = (Button) findViewById(R.id.search_route);
mButton02 = (Button) findViewById(R.id.map_cancel);
mEditText01 = (EditText) findViewById(R.id.search_startingpoint);
mEditText01.setText(getResources()
.getText(R.string.str_default_starting_point).toString());
mEditText02 = (EditText) findViewById(R.id.search_destination);
mEditText02.setText(getResources()
.getText(R.string.str_default_address).toString());
// 按钮 查询地址规划路径
mButton01.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) { // 选择方式
final CharSequence[] items = { "乘车", "步行", "驾车" };
AlertDialog.Builder builder = new AlertDialog.Builder(
Map_index.this);
builder.setTitle("选择交通方式");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
StringBuilder params = new StringBuilder()
.append("&dirflg=");
switch (item) {
case 0:
params.append("r");
break;
case 1:
params.append("w");
break;
case 2:
params.append("d");
break;
default:
break;
}
getMap(params.toString());
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
// 取消
mButton02.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
// TODO Auto-generated method stub
protected void getMap(String params) {
if (mEditText01.getText().toString() != ""
& mEditText01.getText().toString() != "") {
/* 取得User要前往的GeoPoint对象 */
fromGeoPoint = getGeoByAddress(mEditText01.getText().toString());
toGeoPoint = getGeoByAddress(mEditText02.getText().toString());
/* 路径规划Intent */
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
/* 传入路径规划所需要的地标地址 */
intent.setData(Uri.parse("http://maps.google.com/maps?f=d&saddr="
+ GeoPointToString(fromGeoPoint) + "&daddr="
+ GeoPointToString(toGeoPoint) + "&hl=cn&t=m&" + params));
// 强制使用谷歌地图打开
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
& Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setClassName("com.google.android.apps.maps",
"com.google.android.maps.MapsActivity");
startActivity(intent);
}
}
/* 从输入的Address地址,取得其GeoPoint对象 */
private GeoPoint getGeoByAddress(String strSearchAddress) {
GeoPoint gp = null;
try {
if (strSearchAddress != "") {
Geocoder mGeocoder01 = new Geocoder(Map_index.this, Locale
.getDefault());
List<Address> lstAddress = mGeocoder01.getFromLocationName(
strSearchAddress, 1);
if (!lstAddress.isEmpty()) {
Address adsLocation = lstAddress.get(0);
double geoLatitude = adsLocation.getLatitude() * 1E6;
double geoLongitude = adsLocation.getLongitude() * 1E6;
gp = new GeoPoint((int) geoLatitude, (int) geoLongitude);
} else {
Log.i(TAG, "Address Geopoint not Found.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
return gp;
}
/* 将Geopoint里的经纬度以String,String返回 */
private String GeoPointToString(GeoPoint gp) {
String strReturn = "";
try {
/* 当Location存在 */
if (gp != null) {
double geoLatitude = (int) gp.getLatitudeE6() / 1E6;
double geoLongitude = (int) gp.getLongitudeE6() / 1E6;
strReturn = String.valueOf(geoLatitude) + ","
+ String.valueOf(geoLongitude);
}
} catch (Exception e) {
e.printStackTrace();
}
return strReturn;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, SAVEROUTE, 0, "收藏路线")
.setIcon(getResources().getDrawable(R.drawable.list_add));
menu.add(0, ROUTELIST, 1, "路线列表")
.setIcon(getResources().getDrawable(R.drawable.business));
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case SAVEROUTE:
Long mRowId=-1L;
Intent intent1 = new Intent(Map_index.this,
MapCollectionPath.class);
Bundle fpoint = new Bundle();
fpoint.putLong("mRowId", mRowId);
fpoint.putString("fav_startingpoint", mEditText01.getText()
.toString());
fpoint.putString("fav_destination", mEditText02.getText()
.toString());
fpoint.putString("title","");
intent1.putExtras(fpoint);
startActivity(intent1);
break;
case ROUTELIST:
Intent intent2 = new Intent(Map_index.this, MapList.class);
startActivity(intent2);
break;
}
return super.onOptionsItemSelected(item);
}
}
发表评论
-
我今天打算推荐一下近期自己制作的一款app-吃惑
2016-07-13 17:12 434你是否有这样的习惯 ... -
android listview优化几种写法详细介绍
2015-02-18 14:58 711这篇文章只是总结下getView里面优化视图的几种写法,就像 ... -
利用convertView优化ListView性能
2015-02-18 14:26 637这里提到的ListView只是作为一个典型代表 其实在A ... -
Android之ListView原理学习与优化总结
2015-02-05 15:50 687在整理前几篇文章的时候有朋友提出写一下ListView的性 ... -
sleep()和wait()有什么区别
2015-02-04 09:38 745sleep就是正在执行的线程主动让出cpu,cp ... -
线程与进程的区别
2015-01-27 20:12 625线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程 ... -
线程同步的几种方式(转)
2015-01-27 19:58 812进程中线程同步的四种常用方式: 1、 临界区(CCrit ... -
Eclipse提示No java virtual machine
2014-12-15 16:22 938当你启动eclipse时出现... No java v ... -
解决客户端向服务器端传输中文乱码问题
2014-10-24 09:59 885客户端加码 Java code? ... -
重要通告
2012-02-05 11:36 863博客涉及到的所有源码,包括网站源码、Android源码等均在千 ... -
关于Android发送邮件
2011-09-11 08:40 3283Google 在发表 Android 手机平台时,强调的是超强 ... -
ImageButton点击背景切换事件
2011-08-23 14:30 2471问题:imagebutton初始显示图片1,当单击该image ... -
Android中ImageButton的运用详解
2011-08-23 14:13 2246ImageButton在Android的运用非常灵活,既可以在 ... -
Android拍照、录像、录音代码范例
2011-08-19 09:17 1187package com.cons.dcg.collect; i ... -
Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu)
2011-08-12 11:49 2014覆盖onPrepareOptionsMenu(Menu men ... -
ArrayAdapter和BaseAdapter的区别是什么
2011-08-11 18:10 2104近期很多Android开发者来函表示对ArrayAdapt ... -
有关代码结构的优化若干
2011-08-11 18:08 947避免建立对象 世界上没有免费的对象。虽然GC为每个线程都建立 ... -
ArrayAdapter和List的关系
2011-08-11 18:00 21301、使用ArrayAdapter(数组适配器)顾名思义,需要把 ... -
Manifest权限大全
2011-08-09 17:38 967<uses-permission android:nam ... -
Android中创建自己的ContentProvider
2011-08-09 17:37 1327Android是如何实现应用程序之间数据共享的?我们以 ...
相关推荐
基于安卓平台的校园导航APP的设计与实现.docx基于安卓平台的校园导航APP的设计与实现.docx基于安卓平台的校园导航APP的设计与实现.docx基于安卓平台的校园导航APP的设计与实现.docx基于安卓平台的校园导航APP的设计...
本代码实现了基本的车载导航的功能,如gps定位,搜寻最近路径等,基于嵌入式Linux平台,利用qt4.5.6 Creator开发工具进行发开
C# Windows Mobile CE 5下的GPS导航路线记录系统源代码 全部的源程序哟
校园内部的导航程序,可以实现从某一点到某一点的导航,自动选择最佳路线。也有相关资源的介绍
该源码实现了支持室内地图导航功能源码,该功能很容易地实现室内地图导航功能,不但可以在室内地图图片上实现地图导航功能,而且还有许多需要完善的地方。 目前的功能包括: 1. 可以放大缩小地图; 2. 地图上任一点...
由于项目需要、这两天几天一直在研究百度导航的功能、通过不断的实践终于有结果了、不愿意独享 现在我把我的研究成果和大家...So动态库是由native代码编译而成,主要是地图、导航、路线规划、语音播报等功能的底层实现
用C++编写程序实现校园导航,用图的顶点表示景点,可实现导航
微信小程序 地图定位 地图定位 (源代码+截图)微信小程序 地图定位 地图定位 (源代码+截图)微信小程序 地图定位 地图定位 (源代码+截图)微信小程序 地图定位 地图定位 (源代码+截图)微信小程序 地图定位 地图...
该校园导航系统源代码主要实现了以下几个功能: 1. 查询景点信息:系统可以查询西安电子科技大学南校区内的景点信息,包括景点名称、景点简介、景点详情等信息。 2. 查询两景点间最短距离:系统可以查询两景点之间...
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能...基于C++与QT的模拟车流与导航源码,实现导航系统的核心功能(规划最优路线,显示地图信息,模拟车流).zip
系统主要用作于查询公交路线,有详细查询,站点查询,路线查询,方便用户的一些相关操作。
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、...基于C++与QT的模拟车流与导航项目源码+项目说明(实现导航系统的核心功能(规划最优路线+显示地图信息+模拟车流)).zip
高德地图-实时导航,路径轨迹显示 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]
实现简单的查询,各风景的查询,调用各函数,实现课程设计的目标。其中包含三个功能,一个是直接进入导航系统,利用主函数中已有的数据,进行查询:一个是进行创建数据,本程序中初始数据为农大的导航数据,如果需要...
这是一款导航类app,包含源代码和apk软件,实现了地图显示,实时定位,自定义marker,路线制定,模拟导航,语音通报等功能,使用前替换自己申请的key,即可使用。 app展示以及代码详细讲解:...
同时,调试系统的 PC 端程序可以生成机器人的路线代码,使得机器人策略路线的制定更加方便可靠。 本文的研究和设计对室内自主机器人的实时避障与导航系统的设计与实现具有重要的参考价值,对于机器人控制系统的设计...
校园导航系统,实现浏览全景,显示所有地点和路线最短行程,查询最佳游览路线,两点之间所有路线等功能,利用了多种算法。
**ASP.NET基于.NET的城市公交查询系统设计与实现(源代码+论文)** 本资源提供了一个全面的城市公交查询系统设计与实现的详细方案。该系统采用ASP.NET技术和.NET框架进行开发,旨在为用户提供一个高效、便捷的公交...
它包含了源代码、数据库设计、系统架构及功能的详细说明,以及一篇完整的毕业论文,涵盖了项目的需求分析、设计、实现和测试等各个环节。 **技术栈**: - **前端**:HTML、CSS、JavaScript - **后端**:ASP...
基于高德导航的Android大作业校园助手App开发(源码+数据库+演示视频).rar 【项目技术】 android 【实现功能】 登录:作为系统的首页面,该界面实现用户的登录功能,用户名和密码输入正确后,可以进入APP主界面; ...