可以用百度地图的api,是免费的
解决方案 »
- android编译只能导出用于Linux平台开发的SDK?不能导出用于Windows平台的SDK?那这个SDK有什么用?用了一下不能用到Eclipse中去
- 如何在自己的app中实现关机和重启?
- 请问android gallery如何设置,让图片显示在靠左位置。而不是在中间
- 调用android输入法服务,获取字符问题?
- 如何屏蔽掉menu键长按事件响应?
- Android 模拟器 更改开机画面!
- 为什么android不用swing的控件
- 求教 把文件转换成二进制 然后用SOAP传输
- 高分求助一个android app 与 .Net系统平台的集成的方案或者思路
- 求教,根据下图信息能够计算出手机屏幕的物理尺寸吗?
- android设置界面全屏时IDE报错
- 请问安卓手机(非模拟器)做客户端,TCP协议,PC做服务器问题!!!!
http://developer.baidu.com/map/
可以得到公交实时到站信息???支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索。公交信息查询:可对公交详细信息进行查询;
公交换乘查询:根据起、终点,查询策略,进行线路规划方案;
驾车线路规划:提供不同策略,规划驾车路线;(支持设置途经点)
步行路径检索:支持步行路径的规划。可以实时的知道某一辆公交车的具体位置,离本站的距离,比如还差了几站?
公交车的具体位置是可以通过百度地图的api查询到的,但离本站的距离,比如还差了几站这个就要自己写逻辑算法了,应该不会提供这样的api
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <LinearLayout
android:id="@+id/lltBtnplan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <EditText
android:id="@+id/txtTransit0"
android:layout_width="fill_parent"
android:layout_height="@dimen/S40dip"
android:layout_margin="@dimen/S3dip"
android:hint="@string/placeDeparture" /> <EditText
android:id="@+id/txtTransit1"
android:layout_width="fill_parent"
android:layout_height="@dimen/S40dip"
android:layout_margin="@dimen/S3dip"
android:hint="@string/termini" /> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" > <Button
android:id="@+id/btnMyPoint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myPoint" /> <Button
android:id="@+id/btnDist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/S15dip"
android:text="@string/distance" /> <Button
android:id="@+id/btnPlanPath"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/S15dip"
android:text="@string/search" />
</LinearLayout> <LinearLayout
android:id="@+id/lltTransitGress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:visibility="gone" >
</LinearLayout>
</LinearLayout> <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <com.baidu.mapapi.map.MapView
android:id="@+id/mvwTransitMap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignWithParentIfMissing="false"
android:layout_centerHorizontal="true"
android:layout_centerVertical="false"
android:layout_marginBottom="@dimen/S10dip" > <Button
android:id="@+id/btnPre"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="@dimen/S10dip"
android:layout_marginRight="@dimen/S10dip"
android:layout_weight="1.0"
android:background="@drawable/pre_"
android:visibility="gone" /> <Button
android:id="@+id/btnNext"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="@dimen/S10dip"
android:layout_marginRight="@dimen/S10dip"
android:layout_weight="1.0"
android:background="@drawable/next_"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout></LinearLayout>
package com.taocaiku.gaea.activity.test;import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.taocaiku.gaea.R;
import com.taocaiku.gaea.activity.pilot.MoreAct;
import com.taocaiku.gaea.common.activity.PilotMapActivity;
import com.taocaiku.gaea.domain.Domain;/**
* 查询公交
* @author TCK-001
* @version 1.0
*/
public class TransitAct extends PilotMapActivity {
private EditText txtData0, txtData1;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);setContentView(R.layout.test_transit);app().addActivity(this);
txtData0 = findView(R.id.txtTransit0);
txtData1 = findView(R.id.txtTransit1);
findViewById(R.id.btnMyPoint).setOnClickListener(getMyPoint());
findViewById(R.id.btnDist).setOnClickListener(getDist());
findViewById(R.id.btnPlanPath).setOnClickListener(getTransit());
setMustView(R.id.lltTransitGress, R.id.lltBtnplan, R.id.btnPre, R.id.btnNext, R.id.mvwTransitMap);
mapUtil.searchAddr(pointUtil.getMyPoint(), "myPointBack", gressLayout);
}
private OnClickListener getMyPoint() {
return new OnClickListener() {
public void onClick(View view) {
mapUtil.searchAddr(pointUtil.getMyPoint(), "myPointBack", gressLayout);
}
};
}
public void myPointBack() {
myProvince = mapUtil.getComponent().province;
myCity = mapUtil.getComponent().city;
txtData0.setText(mapUtil.getComponent().street + mapUtil.getComponent().streetNumber);
}
private OnClickListener getDist() {
return new OnClickListener() {
public void onClick(View view) {
if (notNull(getText(txtData0), "出发地", true) && notNull(getText(txtData1), "目的地", true)) {
mapUtil.searchPoint(myProvince + myCity, getText(txtData0), "getDist1", gressLayout);
}
}
};
}
public void getDist1() {
beginPoint = mapUtil.getAddrPoint();
if (beginPoint[0] > 0d && beginPoint[1] > 0d) {
mapUtil.searchPoint(myProvince + myCity, getText(txtData1), "getDist2", gressLayout);
} else {
prompt("出发地地址不全,路径规划失败");
}
}
public void getDist2() {
targetPoint = mapUtil.getAddrPoint();
if (targetPoint[0] > 0d && targetPoint[1] > 0d) {
GeoPoint[] points = new GeoPoint[] { mapUtil.getGeo(beginPoint), mapUtil.getGeo(targetPoint) };
Drawable[] drawables = new Drawable[] { getResources().getDrawable(R.drawable.icon_e), getResources().getDrawable(R.drawable.icon_f) };
mapUtil.setPoints(points, new String[] { "出发地", "目的地" }, drawables);
alert(R.drawable.info, ((int) mapUtil.getDistance(beginPoint, targetPoint) + 1) + "米", "");
} else {
prompt("目的地地址不全,路径规划失败");
}
}
private OnClickListener getTransit() {
return new OnClickListener() {
public void onClick(View view) {
if (notNull(getText(txtData0), "出发地", true) && notNull(getText(txtData1), "目的地", true)) {
mapUtil.searchPoint(myProvince + myCity, getText(txtData0), "getTransit1", gressLayout);
}
}
};
}
public void getTransit1() {
beginPoint = mapUtil.getAddrPoint();
if (beginPoint[0] > 0d && beginPoint[1] > 0d) {
mapUtil.searchPoint(myProvince + myCity, getText(txtData1), "getTransit2", gressLayout);
} else {
prompt("出发地地址不全,路径规划失败");
}
}
public void getTransit2() {
targetPoint = mapUtil.getAddrPoint();
if (targetPoint[0] > 0d && targetPoint[1] > 0d) {
mapUtil.planPath(beginPoint, targetPoint, myCity, 2, "planPathBack", gressLayout);
} else {
prompt("目的地地址不全,路径规划失败");
}
}
@Override
public void toBack(View view) {
changeAct(MoreAct.class, null, Domain.RIGHT);
}}
还要添加什么额外的jar包? 可否发一下了
这个是台北的,需翻墙看