Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将地址转换为纬度和经度,并在地图上显示结果,getNameFrom不提供任何信息_Android_Android Mapview - Fatal编程技术网

Android 将地址转换为纬度和经度,并在地图上显示结果,getNameFrom不提供任何信息

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

因此,当我从地理点删除GetName并对其进行硬编码时,我的地图会显示一个接点,但是,当我使用此函数时,它不会返回任何内容,因此我的地图不会显示任何内容

这是我的ItemizeOverlay类:

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