永发信息网

android.location.Geocoder地址编码获取经纬度问题!在真机上测试为什么有时候可以有时候却不能!????

答案:2  悬赏:50  手机版
解决时间 2021-02-10 15:20
  • 提问者网友:太高姿态
  • 2021-02-10 02:14
代码如下:
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
public class MainActivity extends MapActivity {
BMapManager mBMapMan = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBMapMan = new BMapManager(getApplication());
mBMapMan.init("A2739590CF9578E729B08B1733050DE99406D65E", null);
super.initMapActivity(mBMapMan);
final MapView mMapView = (MapView) findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件
final MapController mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
(int) (116.404 * 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
mMapController.setCenter(point); //设置地图中心点
mMapController.setZoom(12); //设置地图zoom级别
final EditText deit = (EditText)findViewById(R.id.ads);
final Button btn=(Button)findViewById(R.id.btn);

final Geocoder geocoder=new Geocoder(this);//构造一个Geocoder的反应将本地化为给定的语言环境;
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String placename=deit.getText().toString();//将输入地址放入placename
try {
List
georesults=geocoder.getFromLocationName(placename, 3);//通过getFromLocationName()方法,返回查询结果(0——5),3表示最大获取的结果数量
Iterator
locations=georesults.iterator();//创建一个迭代器;
while(locations.hasNext()){
Address location=locations.next();//取出第一个结果
final GeoPoint resultspoint = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
mMapController.animateTo(resultspoint);//地图移动到该点
}
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("GeoAddress", "找不到地址", e);
}
}
} );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override//地图管理;
protected void onDestroy() {
if (mBMapMan != null) {
mBMapMan.destroy();
mBMapMan = null;
}
super.onDestroy();
}
@Override
protected void onPause() {
if (mBMapMan != null) {
mBMapMan.stop();
}
super.onPause();
}
@Override
protected void onResume() {
if (mBMapMan != null) {
mBMapMan.start();
}
super.onResume();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}

可能说的有点含糊,在真机上测试有时候有结果返回,有时候却没有??求大神帮助!!!。。。。。。。。。
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-02-10 03:17
地图的信息,都是从网络来的,如果网络不通、不畅顺,都会造成取不到信息
全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-02-10 04:17
任务占坑
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯