高德地图——输入经纬度查找

[size=large]
首先我们在原来已安装Android的SDK的情况下、我在需要实现高德地图时,需要先做以下功能:

[/size]
[size=large]

一、引入高德的jar包:这里为方便大家学习、就不用大家自己去下载了,文件已附在后面、需要的话可以自己下载。

首先创建工程,并在工程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的代码之前。


[/size]

<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>



[size=large]

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


<?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>

[size=large]

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



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);
}
}

}


[size=large]
最后
[/size]

[img]

[img]http://dl.iteye.com/upload/attachment/0075/7299/342d991c-566a-34e4-a812-b03d7a7a2cd5.png[/img]

[img]http://dl.iteye.com/upload/attachment/0075/7297/0ea3228d-1c07-3f8f-a15f-2ae14e8c652c.png[/img]

[/img]

[img]

[/img]
高德地图地址搜索根据地名在指定范围内搜索返回经纬度 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=9de88a718781910c9a1c81230827d1ce&plugin=AMap.Autocomplete,AMap.PlaceSe 阅读详情

相关推荐

高德地图地址和经纬度的转换

高德地图地址和经纬度的转换 1. 地址转经纬度 import requests def addressToLocation(address): """ 将地址转换为经纬度 :param address: 地址 :return: 经度和维度 """ # 在高德地图开发者平台(https://lbs.amap.com/)申请的key,需要替换为自己的k...

Amy9_Miss的博客 3738

输入经纬度查询位置

3)进入平台,菜单中找到“开发支持” ->“地图工具”->“坐标拾取器”1)进入百度地图:https://map.baidu.com/1)进入百度地图:https://www.amap.com/3)进入平台下拉,找到“工具支持” -> “坐标拾取器”4)勾选“按坐标搜索”,输入经纬度(以英文逗号隔开)4)勾选“坐标反查”,输入经纬度(以英文逗号隔开)备注:百度地图手机端App,暂不支持。备注:高德地图手机端App,暂不支持。2)点击下方的“地图开放平台”2)点击下方的“开放平台”

漂石的手艺(技术)活儿 2万+

java调用高德地图获取经纬度

java调用高德地图获取经纬度 官网api:https://lbs.amap.com/api/webservice/guide/api/georegeo 报错api:https://lbs.amap.com/api/track/lieying-kaifa/tools/info/ 报错格式如下: 官网api中详细的记录了各种报错情况,可以进去查看。 获取经纬度原理: 1.首先获取到url。&output=JSON 返回的格式为json,默认也是json,返回json可以不写,也可以返回xml文件。&

csdnhyms的博客 2371

高德地图输入具体地址获取经纬度

【代码】高德地图输入具体地址获取经纬度。

white_777的博客 975

OpenV2X 车路协同开源平台 Columbia 版本正式发布!

OpenV2X车路协同开源平台Columbia 版本正式发布!

weixin_65571684的博客 1198

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

根据城市的三字代码查询经纬度_利用PowerQuery,人人都可以零代码调用API获取经纬度...

从一个地址中找出该地址所处的省份、城市,如果是结构化的地址,比如“北京市海淀区丹棱街5号”,可以通过分列或者文本函数提取出相关信息,但是如果一个特定的地址不包含城市信息,比如“中央电视台总部大楼”,这种情况下你如何自动找出所在的位置信息呢?更进一步的,我们还想返回这些地址的经纬度信息,这种需求也很普遍,但通过简单的文本函数已无法实现。不过还好有更强大更方便的实现方式:调用地图网站的API.关于什么...

weixin_39939510的博客 497

LVGL的基础知识总结

另外,还有自定义字库的使用,具体可参考开发手册。

qq_28576837的博客 7386

vue3中实现高德地图POI搜索(附源码)

上一篇文章详细讲解了vue3中实现高德地图地址搜索自动提示(附源码),本文将重点介绍POI搜索功能的实现。POI(Point of Interest) 搜索用于查找特定位置或区域内的兴趣点,如餐馆、商场、景点等。

qq_44919431的博客 1205

大模型训练流程(四):PPO强化学习实战与调优指南

本文详细解析了大模型训练中PPO强化学习的实战应用与调优技巧,涵盖RLHF核心原理、PPO算法实现及显存优化策略。通过具体案例和代码示例,指导开发者有效提升模型回答质量与安全性,避免常见训练陷阱。

weixin_29051811的博客 437

Coze+剪映小助手实战:5分钟搞定视频草稿创建工作流(附常见错误排查)

本文详细介绍了如何利用Coze平台与剪映小助手,通过create_draft接口快速搭建自动化视频草稿创建工作流。文章从核心价值、零基础搭建步骤、运行验证到深度错误排查,手把手教你5分钟内实现视频项目参数预设的标准化与自动化,显著提升短视频创作与团队协作效率。

oil88的博客 549

高德地图API - 根据经纬度获取周边建筑地标

根据当前的定位获取附近的地标 // 高德地图查询周边 function aMapSearchNearBy(centerPoint, city) { AMap.service(["AMap.PlaceSearch"], function() { var placeSearch = new AMap.PlaceSearch({ pageSize: 1...

boy火巨的博客 2861

保姆级教程:用Anaconda+PyCharm搞定YOLOv8本地部署(附避坑指南)

本文提供了一份详细的YOLOv8本地部署指南,涵盖Anaconda环境配置、PyCharm集成到模型部署的全过程。特别针对国内开发者需求,整合了镜像加速和常见报错解决方案,帮助快速完成目标检测模型的本地部署与实战应用。

weixin_42528090的博客 433

Python调用高德地图API实现经纬度换算、地图可视化

作者 |糖甜甜甜 出品 | 经管人学数据分析 Python调用高德地图API实现经纬度换算、地图可视化 前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出的轻量级可视化平台上实现一键式地图可视化,这其中需要申请密钥、批量经纬度换算、地图平台可视化操作等等。 初始数...

zhusongziye的博客 2万+

VisionMaster4.2.0与C#控件开发实战:从入门到精通的完整指南

本文详细介绍了VisionMaster4.2.0与C#控件开发的实战指南,从基础环境搭建到核心控件使用,再到高级功能实现。通过VmFrontendControl、VmGlobalToolControl等核心控件的深入解析,帮助开发者快速掌握机器视觉应用开发技巧,提升开发效率。特别适合需要集成VisionMaster4.2.0 SDK进行视觉系统开发的C#程序员。

weixin_42665725的博客 383

【深度学习】最强算法之:残差网络(ResNet)

一篇掌握深度学习算法之:残差网络

商务合作 | 面试培训 | 职场规划 ==>主页扫码 7837

Qt借助高德地图API实现地址获取经纬度,经纬度获取地址

qt通过高德地图实现经纬度与地址的转换

qq_32663053的博客 1100

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python调用高德地图API获取中文地址对应的经纬度

目录 一、高德地图API简介 1.进入“地理/逆地理编码API”界面 2.地理编码API参数简介 二、python获取地址经纬度 1.获取单个位置经纬度 2.获取多个位置经纬度 PS:本文借助高德API实现任意地址的经纬度获取,适用面较广。如果个人手中数据为比较整齐的省区县数据,相对应到经纬度,也可以参考python处理中文地址描述中的省市区信息(经纬度)。 开始正文~ 一、高德...

bosong的博客 8919

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用高德地图API批量获取地址对应的经纬度

利用高德地图API实现批量获取地址对应的经纬度

hongyinvjianke的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

高德地图API简单使用——地名转经纬度

        之前小菌也分享过一些经典爬虫的案例,但有小伙伴私聊小菌希望分享一些常用的python技术。于是这篇博客小菌打算分享高德地图简单API的使用。 """ @File :高德地图API使用 @Time : 2019/10/30 14:27 @Author : 封茗囧菌 @Software: Py...

大数据梦想家 4477

Java调用高德地图API根据详细地址获取经纬度

public class MapUtils { public static void main(String[] args) { SpringApplication.run(SnCal5.class, args); try { // 1、根据地址获取经纬度 Map<String, String> lonAndLat = getLonAndLat("浙江省杭州市滨江区江汉路1515号", "key"); //.

Tong__wei的博客 2413

使用python调用高德地图API获取经纬度地理信息

高德地图API简介 1.进入“地理/逆地理编码API”界面 1)登录高德地图API网站-高德API,界面如图所示。 鼠标移至“开发支持-Web服务API”,点击进入 找到下图中的“地理/逆地理编码API”,点击,如下图所示。 查看API参数 python获取经纬度 """0521 xu google地图获取经纬度""" import requests import json # 输入API问号前固定不变的部分 url='https://restapi.amap.com/v3/geocode/g

weixin_39107270的博客 4115
上一篇: 高德地图——输入经纬度查找
下一篇: 通信技术博客
guiyichen
博客等级 码龄14年 3粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值