我有一个应用程序,在其中单击按钮、更改位置或特定时间后,我可以获得经度和纬度值。我想用这个值在谷歌地图应用程序上显示它们。我正在使用意图显示位置的地图打开地图,但不知何故它没有显示我得到的坐标。
问问题
7282 次
5 回答
5
这是我在我的一个应用程序中使用的一段工作代码。此代码还包括检查用户是否在他/她的设备上安装了 Google 地图。如果检查将应用程序返回为已安装,则该函数会将数据传递给应用程序。如果检查失败,它会显示一个 AlertDialog 通知用户未安装该应用程序。
protected void showMap() {
boolean installedMaps = false;
// CHECK IF GOOGLE MAPS IS INSTALLED
PackageManager pkManager = getPackageManager();
try {
@SuppressWarnings("unused")
PackageInfo pkInfo = pkManager.getPackageInfo("com.google.android.apps.maps", 0);
installedMaps = true;
} catch (Exception e) {
e.printStackTrace();
installedMaps = false;
}
// SHOW THE MAP USING CO-ORDINATES FROM THE CHECKIN
if (installedMaps == true) {
String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + ","
+ PLACE_LONGITUDE + "(" + PLACE_NAME + ")";
Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW,
Uri.parse(geoCode));
startActivity(sendLocationToMap);
} else if (installedMaps == false) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
CheckinsDetails.this);
// SET THE ICON
alertDialogBuilder.setIcon(R.drawable.ic_launcher);
// SET THE TITLE
alertDialogBuilder.setTitle("Google Maps Not Found");
// SET THE MESSAGE
alertDialogBuilder
.setMessage(R.string.noMapsInstalled)
.setCancelable(false)
.setNeutralButton("Got It",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.dismiss();
}
});
// CREATE THE ALERT DIALOG
AlertDialog alertDialog = alertDialogBuilder.create();
// SHOW THE ALERT DIALOG
alertDialog.show();
}
}
下面提到的这行代码将其发送到谷歌地图,而不是只显示Pin ,还显示位置名称。
String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + ","
+ PLACE_LONGITUDE + "(" + PLACE_NAME + ")";
编辑:如果您不希望显示PLACE_NAME,请修改该特定行:geo:latitude,longitude
而不是代码块中使用的行。
检查此链接以获取更多可能的组合,例如缩放:http : //developer.android.com/guide/appendix/g-app-intents.html
于 2012-09-26T10:14:35.573 回答
0
Double latitud = 37.40*1E6;
Double longitud = -5.99*1E6;
GeoPoint loc =
new GeoPoint(latitud.intValue(), longitud.intValue());
controlMapa.animateTo(loc);
int zoomActual = mapa.getZoomLevel();
for(int i=zoomActual; i<10; i++)
controlMapa.zoomIn();
}
在哪里
controlMapa = mapa.getController();
mapa = (MapView)findViewById(R.id.linearLayout1);
更多信息:MapView 教程
于 2012-09-26T10:10:52.887 回答
0
试试这个:
String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+ ze.getCoordenada().getLongitude();
Intent goZe = new Intent(Intent.ACTION_VIEW);
goZe.setData(Uri.parse(url));
startActivity(goZe);
您将收到使用浏览器或地图的提示
于 2013-03-19T16:35:28.630 回答
0
不知何故,在谷歌上使用这个字符串
String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+ ze.getCoordenada().getLongitude();
选择谷歌地图时显示相反的经度和纬度,而网站是正确的。
也许我使用的是旧版本的谷歌地图
于 2013-09-07T09:34:43.523 回答
0
public void showMap(long latitude, long longitude) {
String geoCode = "geo:0,0?q=" + latitude + ","
+ longitude;
Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW, Uri.parse(geoCode));
if (sendLocationToMap.resolveActivity(getPackageManager())!=null){
startActivity(sendLocationToMap);
}
else {
Toast.makeText(this,"No Application To handle the Request",Toast.LENGTH_SHORT).show();
}
}
于 2017-12-02T23:09:18.300 回答