URI 拼写:
<span style="font-size:18px;">public class StringUtil {
/**
* Check if the string is empty
*
* @param input string to be checked
* @return true if input is not null and length>0, otherwise false
*/
public static boolean isEmpty(String input) {
return input == null || input.length() == 0;
}
/**
* 打开地图App 有经纬度
* @param lat
* @param lng
* @param addr
* @return
*/
public static String getAddressDetailUrl(String lat, String lng, String addr) {
String strUrl = "geo:%1$s,%2$s?q=%3$s";
return String.format(strUrl, lat, lng ,addr);
}
/**
* 打开地图App 只有地址信息
* @param addr
* @return
*/
public static String getAddressUrl(String addr) {
String strUrl = "geo:q=%1$s";
return String.format(strUrl,addr);
}
/**
* 网页版地图 有经纬度
* @param lat
* @param lng
* @param addr
* @return
*/
public static String getHtmlAddressDetailUrl(String lat, String lng, String addr) {
String strUrl = "http://api.map.baidu.com/marker?location=%1$s,%2$s&title=%3$s&content=%4$s&output=html";
return String.format(strUrl, lat, lng, addr ,addr);
}
/**
* 网页版地图 只有地址
* @param addr
* @return
*/
public static String getHtmlAddressUrl(String addr) {
String strUrl = "http://api.map.baidu.com/geocoder?address=%1$s&output=html";
return String.format(strUrl,addr);
}
}</span>
地图跳转:
<span style="font-size:18px;">public void map(View view){
String mAddress = "鼓楼大街" ;
String mLatitude = "39.948976";
String mLongitude = "116.393599";
Uri mapUri = null;
if (!StringUtil.isEmpty(mAddress)){
try {
/**
* 有地图软件
*/
if (StringUtil.isEmpty(mLatitude) || StringUtil.isEmpty(mLongitude)){
mapUri = Uri.parse(StringUtil.getAddressUrl(mAddress));
}else{
mapUri = Uri.parse(StringUtil.getAddressDetailUrl(mLatitude + "",mLongitude+ "",mAddress));
}
Intent loction = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(loction);
} catch (ActivityNotFoundException e){
/**
* 没有安装地图软件 会报错 此时打开网页版地图
*/
Toast.makeText(this, "ActivityNotFoundException", Toast.LENGTH_SHORT).show();
if (StringUtil.isEmpty(mLatitude) || StringUtil.isEmpty(mLongitude)){
mapUri = Uri.parse(StringUtil.getHtmlAddressUrl(mAddress));
}else{
mapUri = Uri.parse(StringUtil.getHtmlAddressDetailUrl(mLatitude+ "",mLongitude+ "",mAddress));
}
Intent loction = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(loction);
} catch (Exception e){
Toast.makeText(this, "异常", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(this, "地址为空", Toast.LENGTH_SHORT).show();
}
}</span>