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

[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

数控弯管机xyz转换ybc的算法_花了一年时间开发的三维弯管机交互式转档软件(三维管子模型UG,SOLIDWORK,PRO/E文件转成YBC)...

在弯管机加工中,由管子模型生成可直接进行弯管加工的YBC数据可以大大提高弯管编程过程.传统的做法是先用dxf数据文件(用autocad绘制管子的轴心线数据)转出XYZ数据,然后由XYZ数据转成YBC数据,而且大部分厂家对文件版本以及软件做管方式都有不少限制,这大大花费了用户的时间跟精力.随着企业的信息化管理以及不断的技术升级,传统用autocad线条模式来描述管子的方式正在被用户用PRO/E,UG...

weixin_29065959的博客 1961

rk3588 Android HDMI IN热插拔解决

1、公司在使用 别的厂商的板卡遇到一个问题,开机我们的app自启就会闪退,后来定位发现是camera 的open出错了,这个问题的出现是因为没有插HDMI IN输入的问题导致的,所以需要对HDMI IN的热插拔进行检测,后面我把这个问题也顺利解决了。下面是我的尝试和使用的解决办法。3、话不多说,我用的是读取系统文件实现的,但是这个方法,需要有status文件的系统读权限,可以修改设备下的/vendor/etc/init/hw/init.rk3588.rc文件修改的权限,这个问题交给自己或者厂家协商解决。

qq_54089476的博客 1918

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

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

weixin_39939510的博客 497

手把手教你设计T型和Π型衰减器:从分贝计算到电阻选型全攻略

本文提供了一份T型和Π型衰减器的详细设计指南,涵盖从分贝计算到电阻选型的全过程。文章以50欧姆系统为例,通过公式推导和实例演示,手把手教你计算两种经典拓扑的电阻值,并深入探讨了电阻选型、误差控制及高频应用等关键实践技巧,帮助工程师和爱好者精准实现信号衰减与阻抗匹配。

blue42的博客 1332

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

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

qq_44919431的博客 1205

微波射频学习笔记18-------偶极子天线和微波天线设计介绍

几种天线设计方法的介绍 一、偶极子天线 1.天线模型 两根紧挨着的金属导体,长度均为四分之一波长,直径均远小于波长,两导体间距也远小于波长。 2.天线性能的设计因素 ① 单个导体长度L:(光速/频率)/4=四分之一波长(在空气中传播的波长),但在导体中传播,波长会变短; ② 导体半径R:远小于波长即可,使用导电率高些的材料,市面上常见直径零点几毫米就挺好,或者用波长/200,得出一个小200的值,也算远小于波长; ③ 两导体间距S:远小于波长即可,可以比半径更小点。 以上三个变量L、R、S,均可在仿真软件

Sil_sprout 1万+

当版图同学只给GDS文件时,我是这样用Calibre PEX和Cadence做后仿真的(保姆级避坑)

本文详细介绍了在模拟IC设计中,当仅获得GDS文件时,如何利用Calibre PEX和Cadence进行高效后仿真的完整流程。涵盖从寄生参数提取到Spectre模型创建的实战技巧,特别针对版本兼容性、文件独立性和参数可调性等常见问题提供解决方案,帮助工程师规避协作中的典型陷阱。

weixin_42556197的博客 242

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

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

boy火巨的博客 2861

图片风格自动分析模型

对于分类任务,我们可以使用交叉熵损失作为损失函数。同时,我们可以选择随机梯度下降(SGD)或Adam等优化器进行模型优化。# 使用SGD优化器# 或使用Adam优化器在这部分,总结整个项目的过程,包括数据准备、模型构建、训练、优化和评估等。同时,讨论可能的改进方向和未来工作,例如尝试更多的模型结构、优化技巧等。

a871923942的博客 1698

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

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

zhusongziye的博客 2万+

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

weixin_45735391的博客 6万+

FOC 电流采样方案对比(单电阻/双电阻/三电阻)

电流采样的作用 在FOC算法中,电流采样在反馈环节是相当重要的一部分,通常交流三相同步电机在进行坐标变换的时候,需要实时测量相电流,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,那么这里有三种方案,单电阻采样,双电阻采样,三电阻采样。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,结合实际中可能需要注意的地方进行总结分析。 单电阻采样 双电阻采样 三电阻采样 ...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

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

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

qq_32663053的博客 1100

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

bosong的博客 8919

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

hongyinvjianke的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

高德地图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、付费专栏及课程。

余额充值