高德相關

Android 高德地圖根據經緯度定位到指定位置,並使用icon標記

//移動到指定經緯度
private void initAMap() {
    AMap  mAMap = mMapView.getMap();
    CameraPosition cameraPosition = new CameraPosition(new LatLng(latitude, longitude), 15, 0, 30);
    CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
    mAMap.moveCamera(cameraUpdate);
    drawMarkers();
}
//畫定位標記圖
public void drawMarkers() {
     MarkerOptions markerOptions = new MarkerOptions()
                .position(new LatLng(latitude, longitude))
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.daohang_location))
                .draggable(true);
     Marker marker = mAMap.addMarker(markerOptions);
     marker.showInfoWindow();
 }

已知地址獲取經緯度方法:

private void getLatlon(String cityName){
GeocodeSearch geocodeSearch=new GeocodeSearch(this);
geocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
if (i==1000){
if (geocodeResult!=null && geocodeResult.getGeocodeAddressList()!=null &&
geocodeResult.getGeocodeAddressList().size()>0){
GeocodeAddress geocodeAddress = geocodeResult.getGeocodeAddressList().get(0);
double latitude = geocodeAddress.getLatLonPoint().getLatitude();//緯度
double longititude = geocodeAddress.getLatLonPoint().getLongitude();//經度
String adcode= geocodeAddress.getAdcode();//區域編碼
Log.e("lgq地理編碼", geocodeAddress.getAdcode()+"");
Log.e("lgq緯度latitude",latitude+"");
Log.e("lgq經度longititude",longititude+"");
Log.i("lgq","dddwww===="+longititude);
}else {
Toast.makeText(MainActivity.this,"地名出錯",Toast.LENGTH_SHORT).show();
//                        ToastUtils.show(context,"地址名出錯");
}
}
}
});
GeocodeQuery geocodeQuery=new GeocodeQuery(cityName.trim(),"29");
geocodeSearch.getFromLocationNameAsyn(geocodeQuery);
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章