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