Android 将地址转换为纬度和经度,并在地图上显示结果,getNameFrom不提供任何信息
因此,当我从地理点删除GetName并对其进行硬编码时,我的地图会显示一个接点,但是,当我使用此函数时,它不会返回任何内容,因此我的地图不会显示任何内容 这是我的ItemizeOverlay类:Android 将地址转换为纬度和经度,并在地图上显示结果,getNameFrom不提供任何信息,android,android-mapview,Android,Android Mapview,因此,当我从地理点删除GetName并对其进行硬编码时,我的地图会显示一个接点,但是,当我使用此函数时,它不会返回任何内容,因此我的地图不会显示任何内容 这是我的ItemizeOverlay类: public class ItemizedOverlay extends com.google.android.maps.ItemizedOverlay { private ArrayList<OverlayItem> mOverlays = new ArrayList<Overla
public class ItemizedOverlay extends com.google.android.maps.ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public ItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}
@Override
public int size() {
return mOverlays.size();
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
在上面的行中,newp可能为null。因此,您必须处理所有预期的接收
获取空指针异常的原因可能是您正在搜索某个内容,而地理编码器正在为您的搜索返回零值,或者可能是搜索时出现的任何连接问题
关于如何添加叠加,请参考本手册,其中有一个关于如何将叠加添加到地图的小而简单的解决方案。是的,我意识到,在if条件下,我将这些线拉过,这会处理空点异常。但是现在它没有显示任何结果我的地图没有显示任何内容,我尝试使用toast和Log.d在if语句中打印,但它从未显示。如果您在代码中向地图添加点,我看不到任何与此相关的代码,android也没有按默认设置进行显示,在我的活动中我有以下课程:公共布尔绘图(画布画布、地图视图、地图视图、布尔阴影、长时间)@Agrawal:我看过你的链接,但我想我做的与之类似。
private void convert_Points() throws IOException {
// initialization
mapOverlays = mapV.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.pin);
itemizedoverlay = new ItemizedOverlay(drawable);
// make OverlayItem by creating a GeoPoint that defines our map coordinates
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> geoResults = geocoder.getFromLocationName("empire state building", 1);
while (geoResults.size()==0) {
geoResults = geocoder.getFromLocationName("empire state building", 1);
}
if (geoResults.size()>0) {
GeoPoint point= new GeoPoint( (int) (geoResults.get(0).getLatitude() * 1E6), (int) (geoResults.get(0).getLongitude() * 1E6));
// GeoPoint point = new GeoPoint(19240000,-99120000);
OverlayItem overlayitem = new OverlayItem(point, "", "");
// add this OverlayItem to acollection in the ItemizedOverlay
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
}
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Point screenPts = new Point(); // transform the Geological point to map pixel
mapView.getProjection().toPixels(p, screenPts);
Bitmap bmp = BitmapFactory.decodeResource( // add the pin
getResources(), R.drawable.pin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
return true;
}
mControl.animateTo(newp);