高德地图,android开发中,怎么用经纬度来显示地图?

就是使是mapView上显示我指定的坐标附近的地图,在文档找不到。。。

首先创建工程,并在工程Build Path>Configure Build Path…>libraries 中选择“Add Externel JARs…”,选定

MapApi.jar,点击OK,这样就可以将高德地图Android API 库文件引入。然后在工程Build Path>Configure Build

Path…>Order and Export 中将引入的库文件MapApi.jar 选中,点击OK,这样您就可以在您的程序中使用高德地图API

了。

二、我们在不熟悉的情况下、先尽量多的添加此软件应用权限;所以在mainifest中添加如下代码;插入的位置在

<application的代码之前。

Java代码
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

三、接着就要在res文件下的layout中添加界面布局了。其代码如下、你可以完全复制进去。

Java代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!--添加文本输入框,查找地址-->
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="center_horizontal">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="经度"/>
<EditText android:layout_height="fill_parent"
android:layout_width="100px"
android:id="@+id/longitude"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="纬度"/>
<EditText android:layout_height="fill_parent"
android:layout_width="100px"
android:id="@+id/latitude"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查找"
android:id="@+id/button"/>
</LinearLayout>

<com.amap.mapapi.map.MapView android:id="@+id/mapView"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:clickable="true"
/>
</LinearLayout>

四、最后就是软件的主程序部分了、里面需要的类和方法不多,主要以按钮的监听器和地图的界面实现为主

Java代码
public void onCreate(Bundle savedInstanceState) {
// this.setMapMode(MAP_MODE_VECTOR);//设置地图为矢量模式

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mMapView = (MapView) findViewById(R.id.mapView);
mMapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件
mMapController = mMapView.getController(); // 得到mMapView
// 的控制权,可以用它控制和驱动平移和缩放
point = new GeoPoint((int) (39.982378 * 1E6), (int) (116.304923 * 1E6)); // 用给定的经纬度构造一个GeoPoint,单位是微度(度*
// 1E6)
// 按钮添加监听器
button_location = (Button) findViewById(R.id.location);
longitude = (EditText) findViewById(R.id.longitude);
latidute = (EditText) findViewById(R.id.latitude);
locationListener = new OnClickListener() {
public void onClick(View e) {
if (e.equals(button_location)) {
// 得到文本输入框的中经纬 度坐标值
String latStr = longitude.getText().toString();
// 将得到的字符串转成数值
double lat = Integer.parseInt(latStr);
String lngStr = latidute.getText().toString();
double lng = Integer.parseInt(lngStr);
//转成经纬度坐标
lat=lat*1E6;
lng=lng*1E6;
// 用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
point = new GeoPoint((int) (lat), (int) (lng));
mMapController.setCenter(point); // 设置地图中心点
mMapController.setZoom(12); // 设置地图zoom 级别
// 添加地图覆盖物
// MyLocationOverlay(this, mMapView);
mylocTest.enableMyLocation(); // 判断是否发现位置提供者
mylocTest.enableCompass(); // 打开指南针
mMapView.getOverlays().add(mylocTest);// 添加定位覆盖物
}
}
};
// 按钮添加监听器
button_location.setOnClickListener(locationListener);
mMapController.setCenter(point); // 设置地图中心点
mMapController.setZoom(12); // 设置地图zoom 级别
// 添加地图覆盖物
mylocTest = new MyLocationOverlay(this, mMapView);
mylocTest.enableMyLocation(); // 判断是否发现位置提供者
mylocTest.enableCompass(); // 打开指南针
mMapView.getOverlays().add(mylocTest);// 添加定位覆盖物
}
//另外一个添加界面覆盖物的类:

public class MyLocationOverlayProxy extends com.amap.mapapi.map.MyLocationOverlay{

private Location mLocation;
protected final Paint mPaint = new Paint();
protected final Paint mCirclePaint = new Paint();
private Bitmap gps_marker=null;
private Point mMapCoords = new Point();
private final float gps_marker_CENTER_X;
private final float gps_marker_CENTER_Y;
private final LinkedList<Runnable> mRunOnFirstFix = new LinkedList<Runnable>();
public MyLocationOverlayProxy(amap amap, MapView mMapView) {

super(amap, mMapView);
gps_marker = ((BitmapDrawable) amap.getResources().getDrawable(
R.drawable.marker_gpsvalid)).getBitmap();
gps_marker_CENTER_X = gps_marker.getWidth() / 2 - 0.5f;
gps_marker_CENTER_Y= gps_marker.getHeight() / 2 - 0.5f;
}

public boolean runOnFirstFix(final Runnable runnable) {
if (mLocation != null) {
new Thread(runnable).start();
return true;
} else {
mRunOnFirstFix.addLast(runnable);
return false;
}
}

public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
mLocation = location;
for(final Runnable runnable : mRunOnFirstFix) {
new Thread(runnable).start();
}
mRunOnFirstFix.clear();
super.onLocationChanged(location);
}

protected void drawMyLocation(Canvas canvas, MapView mapView, final Location mLocation,
GeoPoint point, long time) {
Projection pj=mapView.getProjection();
if (mLocation != null) {
mMapCoords=pj.toPixels(point, null);
final float radius = pj.metersToEquatorPixels(mLocation.getAccuracy());
this.mCirclePaint.setAntiAlias(true);
this.mCirclePaint.setARGB(35, 131, 182, 222);
this.mCirclePaint.setAlpha(50);
this.mCirclePaint.setStyle(Style.FILL);
canvas.drawCircle(mMapCoords.x, mMapCoords.y, radius, this.mCirclePaint);
this.mCirclePaint.setARGB(225, 131, 182, 222);
this.mCirclePaint.setAlpha(150);
this.mCirclePaint.setStyle(Style.STROKE);
canvas.drawCircle(mMapCoords.x, mMapCoords.y, radius, this.mCirclePaint);
canvas.drawBitmap(gps_marker, mMapCoords.x-gps_marker_CENTER_X, mMapCoords.y-gps_marker_CENTER_Y, this.mPaint);
}
}

}
温馨提示:内容为网友见解,仅供参考
无其他回答

高德地图怎么通过输入经纬度查询地点?
可以通过以下步骤在高德地图通过输入经纬度查询地点:1. 打开高德地图应用。2. 在搜索框中输入经纬度信息,格式如“经度,纬度”。例如,“东经116.4度,北纬39.9度”。3. 系统会自动识别并转化为地址信息,并在地图上标注出该地点。详细解释如下:高德地图是一款功能强大的导航地...

怎么使用高德地图经纬度导航功能?
1. 首先,打开您手机上的“高德地图”应用。2. 接着,在地图界面左上角的搜索框中输入目的地经纬度坐标。请确保格式正确,例如“39.90872,116.39748”。输入后,点击搜索框下方的“搜索”按钮。地图应用会自动定位到这一坐标,并展示相关的详细信息。3. 在详细信息页面,找到并点击“导航”按钮。这...

高德地图怎么用经纬度定位
1. 输入经纬度坐标:在高德地图中,可以通过输入具体的经纬度坐标来定位某一位置。用户可以在搜索框内输入经纬度格式如“经度纬度”,例如“116.387度39.909度”。2. 使用收藏或分享功能获取经纬度:除了直接输入,也可以通过其他方式获取经纬度信息。例如,用户可以收藏某个地点,...

高德地图怎么使用经纬度导航?
1. 简在高德地图中,可以通过以下几种方式输入纬度和经度进行导航。(1)手动输入:在搜索框中输入起点和终点的名称或地址,然后点击“导航”按钮,系统会自动计算出最优路径并进行导航。(2)坐标输入:在搜索框中输入起点和终点的经纬度坐标,然后点击“导航”按钮,系统会自动计算出最优路径并进行导航。(...

高德地图如何用经纬度导航
高德地图用经纬度导航步骤如下:1、打开高德地图应用程序。2、在地图上找到要导航的目的地,或者使用搜索框输入要导航的位置的名称或地址。3、在地图上长按选中的位置,会显示一个定位圆圈,并在圆圈下方的信息框中显示该位置的经纬度。4、如果需要,可以点击该位置进入详细信息页面,在这里同样可以看到该...

如何使用高德地图的经纬度导航
1. 启动高德地图应用:在您的智能手机上找到并打开高德地图应用程序。确保您已经登录到您的账户。2. 定位目标位置:使用地图功能,将地图导航至您希望查询经纬度坐标的具体地点。您可以通过搜索地点名称、在地图上拖动或缩放来精确定位。3. 长按标记位置:当您已准确定位所需位置时,长按屏幕上的该点。

高德地图如何用经纬度导航-高德地图经纬度使用介绍
二、经纬度信息查询步骤:1、在高德地图的主界面中,找到屏幕中间的搜索框并点击。2、在出现的输入框中准确填写目的地的经纬度坐标例如:“31.2304,121.4737”。确保输入的坐标信息是完整和准确的。3、高德地图将自动跳转到该经纬度对应的地点。

高德地图怎么看经纬度坐标手机
1、打开高德地图APP,在主界面上找到并点击右侧的“工具”按钮。2、在“工具”界面中,寻找并点击“经纬度”选项,进入经纬度查询界面。3、在地图上找到想查看经纬度的地点,可以通过手势缩放和拖动地图来定位。4、点击该地点,屏幕底部会显示该地点的经纬度坐标,包括纬度和经度的数值。

Android开发高德地图怎么让mark
在修改这个bug的时候,思绪会受谷歌api一些影响,因为一直觉得他们的api都差不多。现在我打开自己的页面,然后拖动marker,拖动结束我会打印一下经纬度,然后把这个经纬度复制下来,并在高德的官方地图上去搜索获取到的这个经纬度。结果确实一直都是有偏差的,而且还偏差值每次都不同。

怎么用高德地图查找经纬度?
如何在高德地图上查找经纬度?步骤一:打开高德地图 首先,确保您的手机已安装高德地图应用程序。打开地图,您将看到一个详细的地图界面。步骤二:定位或搜索地点 您可以通过两种方式找到您想要查看的地点:- 在地图上直接寻找并点击您感兴趣的地点。- 在搜索框中输入地点名称或地址,从搜索结果中选择。步...

相似回答