Google Maps: динамическое рисование на холсте в mapview - PullRequest
0 голосов
/ 09 февраля 2012

В настоящее время у меня возникают проблемы с динамическим добавлением маркера в мое представление карты, конечно, из-за моего отсутствия знаний Java: (

, какой параметр я должен дать своему холсту, чтобы сделать эту работу? Когда я буду платитькоординаты, карта идет туда, куда я хочу, но у меня нет создателя

((Button)findViewById(R.id.goMap)).setOnClickListener(
                      new OnClickListener() {
                     @Override
                     public void onClick(View v) {



                            mapView.invalidate();
                        // On récupère notre EditText
                         EditText UserName = ((EditText)findViewById(R.id.getLon));
                         EditText Password = ((EditText)findViewById(R.id.getLat));

                         // On garde la chaîne de caractères
                          _lat = UserName.getText().toString();
                          _long = Password.getText().toString();

                         latTest =  Double.parseDouble(_lat)* 1E6;
                         longTest =  Double.parseDouble(_long)* 1E6;

                         p3 = new GeoPoint(
                                    (int) (latTest ), 
                                  (int) (longTest ));

                          //---add the marker---
                          Bitmap bmp3 = BitmapFactory.decodeResource(
                               getResources(), R.drawable.maps_position_marker); 
                          Canvas canvas= new Canvas();
                           canvas.drawBitmap(bmp3, screenP3ts.x-15, screenP3ts.y-30, null);


                         mapView.getProjection().toPixels(p3, screenP3ts);
                            mapController.animateTo(p3);
                            mapController.setCenter(p3);

                         Toast.makeText(TheMap.this, "lat=" + latTest + " et " + "long= " + longTest, Toast.LENGTH_SHORT).show();


                         }
                         });

в моем исходном коде, наложение, которое имеет все необходимые параметры, загружается в методе onCreate () и работает нормальноно, как я уже говорил, я не могу понять, как добавить маркер в методе * 1007. * Я знаю, что я сделал неправильно, но я не знаю, как это сделать: (

спасибо заранее

1 Ответ

1 голос
/ 09 февраля 2012

Вы рисуете на холст, используя screenP3ts, прежде чем фактически преобразовать широту / долготу в экранные координаты.Вам нужно это:

Bitmap bmp3 = BitmapFactory.decodeResource(
        getResources(), R.drawable.maps_position_marker); 
Canvas canvas= new Canvas();

mapView.getProjection().toPixels(p3, screenP3ts);
canvas.drawBitmap(bmp3, screenP3ts.x-15, screenP3ts.y-30, null);
...