0

アプリケーションで Google マップを開発していますが、マップが表示されず、グリッド線のみが表示されます。何が問題なのか教えてください。そして、2つ以上のバブルが同じ場所にある場合、テキストが互いに重なっている場合、バブルの上にテキストを描画しています。APIキーを変更した後、マップは表示されますが、2番目の問題はまだ残っています.マップとテキスト(そのバブルのプロパティのサイズ)にバブルを描画する必要があります.リストのサイズが4であると仮定すると、バブルに4を描画する必要があります.これらを実装しましたが、欲望の出力が表示されていません。

            drawable = this.getResources().getDrawable(R.drawable.bluedot);
            drawable1 = this.getResources().getDrawable(R.drawable.bluedot_large);

             overlay = new GoogleMapViewOverlay(drawable,mapView,activity);

//GoogleMapViewOverlay メソッドは次のとおりです:-

public GoogleMapViewOverlay(Drawable drawable, MapView mapView,
            Activity activity2)
    {
        //super(drawable);
        super(boundCenterBottom(drawable));
        setLastFocusedIndex(-1);
        populate();         
        arrayList1  = new ArrayList<Applicationdataset>() ;
        items = new ArrayList<OverlayItem>();
        marker = drawable;
        mContext = mapView.getContext();
        mc = mapView.getController();
        this.activity = activity2;
        DB = new DatabaseHelper(activity2);
    }

//アイテムを次のように追加

if(point != null)
                        {
                            if(arrayList.get(i).getUnitstotal().equalsIgnoreCase("1"))
                            {  
                                oi = overlay.createItem(i);
                                System.out.println("listing when 1 value is"+arrayList.get(i).getUnitstotal());
                                overlay.addItem(oi);
                            }
                            else if(!arrayList.get(i).getUnitstotal().equalsIgnoreCase("1"))
                            {
                                oi = overlay.createItem(i);
                                System.out.println("listing when more value is  "+ arrayList.get(i).getUnitstotal());
                                if(overlay!=null)
                                {
                                    overlay.addItem(oi);
                                    //overlay.draw(canvas, mapView, shadow);
                                }

                            }
                        }

// バブルの上にテキストを描画する draw メソッド

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



        arrayList1 = arrayList;
        for (int index = 0; index < items.size(); index++)
          {
            OverlayItem item = items.get(index);
            GeoPoint point = item.getPoint();
            Point ptScreenCoord = new Point();
            mapView.getProjection().toPixels(point, ptScreenCoord);
            //Paint
            Paint paint = new Paint();
            paint.setStyle(Style.STROKE);  
            paint.setTextAlign(Paint.Align.CENTER);
            paint.setTypeface((Typeface.defaultFromStyle(Typeface.BOLD)));
            paint.setTextSize(20);
            paint.setColor(Color.WHITE);
            paint.setFilterBitmap(false);//true
            if(arrayList.get(index).getUnitstotal().equalsIgnoreCase("1"))                  
                canvas.drawText("", ptScreenCoord.x, ptScreenCoord.y-20,paint);
            else
            {

                  canvas.drawText(arrayList.get(index).getUnitstotal().toString(), ptScreenCoord.x, ptScreenCoord.y-40, paint); 
            }

        }

        return true;
    }
4

1 に答える 1

0

ほとんどの場合、Google マップ API キーを取得していない可能性があります。次のリンクの指示に従って取得してから、試してください: https://developers.google.com/maps/documentation/android/mapkey

于 2012-06-19T05:07:09.433 に答える