Android 从json解析中获取坐标并在mapview中显示?

Android 从json解析中获取坐标并在mapview中显示?,android,Android,通过jsonparsing,我再次解析所有字符串值,我需要在mapview中显示纬度和经度。。我需要将所有坐标存储在一个单独的数组中 任何人都请帮帮我。。 提前感谢我不确定您的parseString函数如何,我假设您可以得到两个字符串值lat和long。其余部分可按以下步骤完成 String coordinates[] = {"...","..."}; double lat = Double.parseDouble(coordinates[0]);

通过jsonparsing,我再次解析所有字符串值,我需要在mapview中显示纬度和经度。。我需要将所有坐标存储在一个单独的数组中 任何人都请帮帮我。。
提前感谢

我不确定您的parseString函数如何,我假设您可以得到两个字符串值lat和long。其余部分可按以下步骤完成

        String coordinates[] = {"...","..."};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);

         p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lon * 1E6));
       //mc is MapView object
        mc.animateTo(p);
        mc.setZoom(15); 

        mapView.invalidate();
要在地图上显示它,您需要在res/folder中使用位图pinpoint创建一个覆盖

MarkerOverlay mark = new MarkerOverlay();
 listOfOverlays = mapView.getOverlays();
        listOfOverlays.clear();
         listOfOverlays.add(mark);
        mapView.invalidate();
MapOverlay的一类可以定义为:

  class MarkerOverlay extends com.google.android.maps.Overlay
    {
      //create a constructor here with p.x and p.y as parameters

        @Override
        public boolean draw(Canvas canvas, MapView mapView, 
        boolean shadow, long when) 
        {
            super.draw(canvas, mapView, shadow);                   

            Point screenPts = new Point();
            Bitmap bmp = BitmapFactory.decodeResource(
                    getResources(), R.drawable.pushpin);  

        GeoPoint point = new GeoPoint(
                                (int) (p.x * 1E6), 
                                (int) (p.y * 1E6));

                        mapView.getProjection().toPixels(point, screenPts);
                        canvas.drawBitmap(bmp, screenPts.x-16, screenPts.y-32, null); 
                        canvas.drawText(parts[0],screenPts.x-16 , screenPts.y-40, new Paint());
                    }
                }
            }


            return true;
        }
    } 

我不确定parseString的函数如何,我假设可以得到2个字符串值lat和long。其余部分可按以下步骤完成

        String coordinates[] = {"...","..."};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);

         p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lon * 1E6));
       //mc is MapView object
        mc.animateTo(p);
        mc.setZoom(15); 

        mapView.invalidate();
要在地图上显示它,您需要在res/folder中使用位图pinpoint创建一个覆盖

MarkerOverlay mark = new MarkerOverlay();
 listOfOverlays = mapView.getOverlays();
        listOfOverlays.clear();
         listOfOverlays.add(mark);
        mapView.invalidate();
MapOverlay的一类可以定义为:

  class MarkerOverlay extends com.google.android.maps.Overlay
    {
      //create a constructor here with p.x and p.y as parameters

        @Override
        public boolean draw(Canvas canvas, MapView mapView, 
        boolean shadow, long when) 
        {
            super.draw(canvas, mapView, shadow);                   

            Point screenPts = new Point();
            Bitmap bmp = BitmapFactory.decodeResource(
                    getResources(), R.drawable.pushpin);  

        GeoPoint point = new GeoPoint(
                                (int) (p.x * 1E6), 
                                (int) (p.y * 1E6));

                        mapView.getProjection().toPixels(point, screenPts);
                        canvas.drawBitmap(bmp, screenPts.x-16, screenPts.y-32, null); 
                        canvas.drawText(parts[0],screenPts.x-16 , screenPts.y-40, new Paint());
                    }
                }
            }


            return true;
        }
    } 

问题出在哪里?如果您得到字符串值,那么接下来该怎么办?问题出在哪里?如果你得到字符串值,那么下一步怎么办?不需要这个地质点=新的地质点((int)(p.x*1E6),(int)(p.y*1E6));可以直接在mapView.getProjection().toPixels(p,screenPts)中使用GeopPoint的p对象;不需要该地质点=新的地质点((int)(p.x*1E6),(int)(p.y*1E6));可以直接在mapView.getProjection().toPixels(p,screenPts)中使用GeopPoint的p对象;