android获取当前城市
Ⅰ 用android开发天气预报左右滑动切换可以获取到城市信息怎么实现
看你用的API了,一般都是在网上找到城市代码的表格,然后选择城市对应的代码提交上去。
Ⅱ android 怎么获取定位到的城市的城市码
使用定位sdk AMapLocation(高德)对象里不就有对应的信息吗
Ⅲ android studio 写一个定位你在哪个城市的Demo
直接给代码对你不好,给你个思路吧,最简单的方法就是调用系统的获取位置服务的API,拿到当前的经纬度,然后再用一些用经纬度定位的API会简单很多的;当然,直接使用网络地图的API也是可以的
Ⅳ android如何获取地理位置
三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位。
1.基站定位(passive):这是基于网络基站进行定位的,定位的精确度在几十米到几千米不等,在城市中基站覆盖率比较高,推荐使用基站定位,如果是在郊区,基站相距较远,基站的覆盖没有城里好,定位的误差比较大。如果在郊区不推荐使用基站定位。
2.网络定位:wifi定位,网络定位
3.GPS定位:与卫星进行通信。手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。精确度:10-50米
扩展知识:
使用Android是定位必备的权限:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精确定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模拟器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位
//获取定位管理对象
LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);
String[] names=lm.getAllProviders();//获取所有的位置提供者,一般三种
Criteria criteria=new Criteria();//查询条件,如果设置了海拔,则定位方式只能是GPS;
criteria.setCostAllowed(true);//是否产生开销,比如流量费
String provider=lm.getBaseProvider(criteria,true)//获取最好的位置提供者,第二个参数为true,表示只获取那些被打开的位置提供者
lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//获取位置。第二个参数表示每隔多少时间返回一次数据,第三个参数表示被定位的物体移动每次多少米返回一次数据。
private class MyLocationListener implements LocationListener {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
@Override
public void onLocationChanged(Location location) {
System. out.println( "服务中位置监听发送了变化了" );
float accuracy = location.getAccuracy(); // 精确度
double altitude = location.getAltitude(); // 海拔
double latitude = location.getLatitude(); // 纬度
double longitude = location.getLongitude(); // 经度
String locationInfo = "jing:" + longitude + ",wei:" + latitude + ",haiba:" + altitude + ",jingque:" + accuracy;
Editor edit = sp.edit();
edit.putString( "location", locationInfo);
edit.commit();
}
} public void onProviderDisabled(String provider) {
}
Ⅳ 百度地图android开发中,类MKOfflineMap的方法getOfflineCityList()获取城市列表
从省到到市,从市取到区,android上好像没有对应的API,不过可以通过javascript的接口来实现,具体说明如下:
省不用说了,不需要接口都可以取得到列表。
市的话要根据省来取,具体如下:
用android的HttpGet等方法(联网的方法网上都有),访问下面的接口:
http://map..com/?qt=sub_area_list&areacode=15&level=1&from=mapapi
(其中最重要的参数就是areacode,下面有介绍,这里15就代表是湖北省)
这样就得到一个省对应的市的相关JSON数据,如:
{"content":{"area_code":15,"area_name":"湖北省","area_type":1,"geo":"1|12513622.70,3637618.8312513622.70,3637618.83|12513622.70,3637618.83","sub":[{"area_code":122,"area_name":"鄂州市","area_type":2,"geo":"1|12790258.19,3531251.9912790258.19,3531251.99|12790258.19,3531251.99"},{"area_code":156,"area_name":"襄樊市","area_type":2,"geo":"1|12487547.34,3752866.8112487547.34,3752866.81|12487547.34,3752866.81"},{"area_code":157,"area_name":"荆州市","area_type":2,"geo":"1|12494843.30,3524596.7112494843.30,3524596.71|12494843.30,3524596.71"},{"area_code":216,"area_name":"十堰市","area_type":2,"geo":"1|12334470.59,3823962.8912334470.59,3823962.89|12334470.59,3823962.89"},{"area_code":217,"area_name":"荆门市","area_type":2,"geo":"1|12492111.99,3616047.7912492111.99,3616047.79|12492111.99,3616047.79"},{"area_code":218,"area_name":"武汉市","area_type":2,"geo":"1|12725759.65,3556525.7012725759.65,3556525.70|12725759.65,3556525.70"},{"area_code":270,"area_name":"宜昌市","area_type":2,"geo":"1|12391216.56,3576054.8912391216.56,3576054.89|12391216.56,3576054.89"},{"area_code":271,"area_name":"黄冈市","area_type":2,"geo":"1|12791485.39,3539172.5112791485.39,3539172.51|12791485.39,3539172.51"},{"area_code":310,"area_name":"孝感市","area_type":2,"geo":"1|12683405.94,3601233.8012683405.94,3601233.80|12683405.94,3601233.80"},{"area_code":311,"area_name":"黄石市","area_type":2,"geo":"1|12807522.82,3509660.5012807522.82,3509660.50|12807522.82,3509660.50"},{"area_code":362,"area_name":"咸宁市","area_type":2,"geo":"1|12723962.99,3466736.4612723962.99,3466736.46|12723962.99,3466736.46"},{"area_code":371,"area_name":"随州市","area_type":2,"geo":"1|12621469.77,3703661.0912621469.77,3703661.09|12621469.77,3703661.09"},{"area_code":373,"area_name":"恩施土家族苗族自治州","area_type":2,"geo":"1|12188717.77,3518605.0912188717.77,3518605.09|12188717.77,3518605.09"},{"area_code":1293,"area_name":"潜江市","area_type":2,"geo":"1|12553498.42,3525947.4312553498.42,3525947.43|12553498.42,3525947.43"},{"area_code":1713,"area_name":"仙桃市","area_type":2,"geo":"1|12622370.33,3519641.2012622370.33,3519641.20|12622370.33,3519641.20"},{"area_code":2654,"area_name":"天门市","area_type":2,"geo":"1|12593291.39,3565272.6712593291.39,3565272.67|12593291.39,3565272.67"},{"area_code":2734,"area_name":"神农架林区","area_type":2,"geo":"1|12299516.08,3687772.6212299516.08,3687772.62|12299516.08,3687772.62"}]},"result":{"error":0}}
解析这个JSON就能得到这个省下面包含的市。
3.区的话,要通过市获取,具体调用的方法跟取市的接口一样,只是传入的areacode不一样就可以了。(传城市的areacode就可以得到区)
areacode是网络地图对应的城市代码,在网络地图的开发网站上能找到,如果找不下,看下面的也可以:
mcid如下:areaUID=
中国|1
安徽|23
福建|16
甘肃|6
广东|7
广西|17
贵州|24
海南|21
河北|25
黑龙江|2
河南|30
湖北|15
湖南|26
江苏|18
江西|31
吉林省|9
辽宁|19
内蒙古|22
宁夏|20
青海|11
山东|8
山西|10
陕西|27
四川|32
新疆|12
西藏|13
云南|28
浙江|29
北京|131
天津|332
石家庄|150
唐山|265
秦皇岛|148
邯郸|151
邢台|266
保定|307
张家口|264
承德|207
沧州|149
廊坊|191
衡水|208
太原|176
大同|355
阳泉|357
长治|356
晋城|290
朔州|237
晋中|238
运城|328
忻州|367
临汾|368
吕梁|327
呼和浩特|321
包头|229
乌海|123
赤峰|297
通辽|64
鄂尔多斯|283
呼伦贝尔|61
巴彦淖尔|169
乌兰察布|168
兴安盟|62
锡林郭勒盟|63
阿拉善盟|230
沈阳|58
大连|167
鞍山|320
抚顺|184
本溪|227
丹东|282
锦州|166
营口|281
阜新|59
辽阳|351
盘锦|228
铁岭|60
朝阳|280
葫芦岛|319
长春|53
吉林市|55
四平|56
辽源|183
通化|165
白山|57
松原|52
白城|51
延边朝鲜族自治州|54
哈尔滨|48
齐齐哈尔|41
鸡西|46
鹤岗|43
双鸭山|45
大庆|50
伊春|40
佳木斯|42
七台河|47
牡丹江|49
黑河|39
绥化|44
大兴安岭地区|38
上海|289
南京|315
无锡|317
徐州|316
常州|348
苏州|224
南通|161
连云港|347
淮安|162
盐城|223
扬州|346
镇江|160
泰州|276
宿迁|277
杭州|179
宁波|180
温州|178
嘉兴|334
湖州|294
绍兴|293
金华|333
衢州|243
舟山|245
台州|244
丽水|292
合肥|127
芜湖|129
蚌端口|126
淮南|250
马鞍山|358
淮北|253
铜陵|337
安庆|130
黄山|252
滁州|189
阜阳|128
宿州|370
巢湖|251
六安|298
亳州|188
池州|299
宣城|190
福州|300
厦门|194
莆田|195
三明|254
泉州|134
漳州|255
南平|133
龙岩|193
宁德|192
南昌|163
景德镇|225
萍乡|350
九江|349
新余|164
鹰潭|279
赣州|365
吉安|318
宜春|278
抚州|226
上饶|364
济南|288
青岛|236
淄博|354
枣庄|172
东营|174
烟台|326
潍坊|287
济宁|286
泰安|325
威海|175
日照|173
莱芜|124
临沂|234
德州|372
聊城|366
滨州|235
菏泽|353
郑州|268
开封|210
洛阳|153
平顶山|213
安阳|267
鹤壁|215
新乡|152
焦作|211
濮阳|209
许昌|155
漯河|344
三门峡|212
南阳|309
商丘|154
信阳|214
周口|308
驻马店|269
武汉|218
黄石|311
十堰|216
宜昌|270
襄樊|156
鄂州|122
荆门|217
孝感|310
荆州|157
黄冈|271
咸宁|362
随州|371
恩施土家族苗族自治州|373
仙桃|1713
潜江|1293
天门|2654
神农架林区|2734
长沙|158
株洲|222
湘潭|313
衡阳|159
邵阳|273
岳阳|220
常德|219
张家界|312
益阳|272
郴州|275
永州|314
怀化|363
娄底|221
湘西土家族苗族自治州|274
广州|257
韶关|137
深圳|340
珠海|140
汕头|303
佛山|138
江门|302
湛江|198
茂名|139
肇庆|338
惠州|301
梅州|141
汕尾|339
河源|200
阳江|199
清远|197
东莞|119
中山|187
潮州|201
揭阳|259
云浮|258
南宁|261
柳州|305
桂林|142
梧州|304
北海|295
防城港|204
钦州|145
贵港|341
玉林|361
百色|203
贺州|260
河池|143
来宾|202
崇左|144
海口|125
三亚|121
五指山|1644
琼海|2358
儋州|1215
文昌|2758
万宁|1216
东方|2634
定安|1214
屯昌|1641
澄迈|2757
临高|2033
白沙黎族自治|2359
昌江黎族自治|1642
乐东黎族自治|2032
陵水黎族自治|1643
保亭黎族苗族自治|1217
琼中黎族苗族自治|2031
重庆|132
成都|75
自贡|78
攀枝花|81
泸州|331
德阳|74
绵阳|240
广元|329
遂宁|330
内江|248
乐山|79
南充|291
眉山|77
宜宾|186
广安|241
达州|369
雅安|76
巴中|239
资阳|242
阿坝藏族羌族自治州|185
甘孜藏族自治州|73
凉山彝族自治州|80
贵阳|146
六盘水|147
遵义|262
安顺|263
铜仁地区|205
黔西南布依族苗族自治州|343
毕节地区|206
黔东南苗族侗族自治州|342
黔南布依族苗族自治州|306
昆明|104
曲靖|249
玉溪|106
保山|112
昭通|336
丽江|114
临沧|110
楚雄彝族自治州|105
红河哈尼族彝族自治州|107
文山壮族苗族自治州|177
普洱|108
西双版纳傣族自治州|109
大理白族自治州|111
德宏傣族景颇族自治州|116
怒江傈僳族自治州|113
迪庆藏族自治州|115
拉萨|100
昌都地区|99
山南地区|97
日喀则地区|102
那曲地区|101
阿里地区|103
林芝地区|98
西安|233
铜川|232
宝鸡|171
咸阳|323
渭南|170
延安|284
汉中|352
榆林|231
安康|324
商洛|285
兰州|36
嘉峪关|33
金昌|34
白银|35
天水|196
武威|118
张掖|117
平凉|359
酒泉|37
庆阳|135
定西|136
陇南|256
临夏回族自治州|182
甘南藏族自治州|247
西宁|66
海东地区|69
海北藏族自治州|67
黄南藏族自治州|70
海南藏族自治州|68
果洛藏族自治州|72
玉树藏族自治州|71
海西蒙古族藏族自治州|65
银川|360
石嘴山|335
吴忠|322
固原|246
中卫|181
乌鲁木齐|92
克拉玛依|95
吐鲁番地区|89
哈密地区|91
昌吉回族自治州|93
博尔塔拉蒙古自治州|88
巴音郭楞蒙古自治州|86
阿克苏地区|85
克孜勒苏柯尔克孜自治州|84
喀什地区|83
和田地区|82
伊犁哈萨克自治州|90
塔城地区|94
阿勒泰地区|96
石河子|770
阿拉尔|731
图木舒克|792
五家渠|789
香港特别行政区|2912
澳门特别行政区|2911
Ⅵ android百度地图api 怎么知道该搜索哪个城市
在onLocationChanged方法里获得自己当前的坐标
然后方法里写 mSearch.reverseGeocode(new GeoPoint((int)(location.getLatitude()*1e6),(int)(location.getLongitude()*1e6)));
然后再通过代码实行这个方法功能
public class MySearchListener implements MKSearchListener {
public void onGetAddrResult(MKAddrInfo result, int error){
MKGeocoderAddressComponent kk=result.addressComponents;
String city=kk.city;
}
}
Ⅶ android使用高德定位sdk获取的城市名称怎样让其他的界面进行调用
第一步,我们需要下载SDK
第二步,解压后,将jar包放进libs文件夹中,并加入环境变量中。
第三步,在AndroidManifest.xml文件中配置权限:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
并在application标签中添加:
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="你申请的key" />
<service android:name="com.amap.api.location.APSService" />
第四步,测试代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
public class MainActivity extends AppCompatActivity {
//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
public AMapLocationListener mLocationListener = new MyAMapLocationListener();
//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
//初始化AMapLocationClientOption对象
mLocationOption = new AMapLocationClientOption();
//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//获取一次定位结果:
//该方法默认为false。
mLocationOption.setOnceLocation(false);
//获取最近3s内精度最高的一次定位结果:
//设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
mLocationOption.setOnceLocationLatest(true);
//设置是否返回地址信息(默认返回地址信息)
mLocationOption.setNeedAddress(true);
//设置是否允许模拟位置,默认为false,不允许模拟位置
mLocationOption.setMockEnable(false);
//关闭缓存机制
mLocationOption.setLocationCacheEnable(false);
//给定位客户端对象设置定位参数
mLocationClient.setLocationOption(mLocationOption);
//启动定位
mLocationClient.startLocation();
}
private class MyAMapLocationListener implements AMapLocationListener {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation != null) {
if (aMapLocation.getErrorCode() == 0) {
Log.e("位置:", aMapLocation.getAddress());
} else {
//定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
Log.e("AmapError", "location Error, ErrCode:"
+ aMapLocation.getErrorCode() + ", errInfo:"
+ aMapLocation.getErrorInfo());
}
}
}
}
}
Ⅷ android百度地图 怎样在刚进入地图时显示当地城市
你手机开了GPS定位地理位置
Ⅸ android 版百度地图如何通过定位功能获得当前的位置所在的城市
网络地图是通过移动通信基站定位来确定当前位置所在的城市。其原理就是通过测算周围基站与手机的距离来交会估算手机的空间位置。
手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力,但是精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。前者定位精度较高。此外还有利用Wifi在小范围内定位的方式。
Ⅹ android得到经纬度怎么获取位置
Android地图开发实际应用中,经常会通过地图定位判断手机用户是哪个城市的,然后根据城市的不同调取不同的数据,或者是地图定位之后,会在手机界面中显示用户的详细位置,如石家庄市中山北国商城。
那么这些信息如何获得? 详细研究过Android MapView的可能用到Geocoder这个对象。详细代码如下:[java] view plain
Geocoder geocoder=new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses=geocoder.getFromLocation(latitude, longitude, 1);
StringBuilder stringBuilder=new StringBuilder();
if(addresses.size()>0){
Address address=addresses.get(0);
for(int i=0;i<address.getMaxAddressLineIndex();i++){
stringBuilder.append(address.getAddressLine(i)).append("\n");
}
stringBuilder.append(address.getLocality()).append("_");
stringBuilder.append(address.getPostalCode()).append("_");
stringBuilder.append(address.getCountryCode()).append("_");
stringBuilder.append(address.getCountryName()).append("_");
System.out.println(stringBuilder.toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(this, "报错", Toast.LENGTH_LONG).show();
e.printStackTrace();
}