Android Draw Pin на карте Google - PullRequest
0 голосов
/ 22 февраля 2012

Я создал googlemap в своем приложении для Android.Теперь я хочу нарисовать значок в моем местоположении.

Это мой код для этого: -

public class GooglemapActivity extends MapActivity {
private List<Overlay> mapOverlays;
private Drawable drawable;
private MyOverlay itemizedOverlay;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    MapView mMapView;
    mMapView = (MapView) findViewById(R.id.mapview);
    mMapView.setBuiltInZoomControls(true);
    mapOverlays = mMapView.getOverlays();
    drawable = getResources().getDrawable(R.drawable.c_map_pin_blue);
    itemizedOverlay = new MyOverlay(drawable);
    GeoPoint point = new GeoPoint((int) 26.863966000000000,
            (int) 75.766938300000000);

    itemizedOverlay.addItem(point, "Quippelin", "0");
    mapOverlays.add(itemizedOverlay);

}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}
}

, и это мой другой класс: -

public class MyOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> overlayItemList = new ArrayList<OverlayItem>();

public MyOverlay(Drawable marker) {
    super(boundCenterBottom(marker));
    // TODO Auto-generated constructor stub

    populate();
}

public void addItem(GeoPoint p, String title, String snippet) {
    OverlayItem newItem = new OverlayItem(p, title, snippet);
    overlayItemList.add(newItem);
    populate();
}

@Override
protected OverlayItem createItem(int i) {
    // TODO Auto-generated method stub
    return overlayItemList.get(i);
}

@Override
public int size() {
    // TODO Auto-generated method stub
    return overlayItemList.size();
}

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    // TODO Auto-generated method stub
    super.draw(canvas, mapView, shadow);
    // boundCenterBottom(marker);
}
}

моя карта отображается правильно, но мой пин-код не отображается, пожалуйста, помогите мне выяснить, какую ошибку я совершил.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 22 февраля 2012

Все выглядит хорошо, за исключением того, что ваша точка находится в состоянии "выкл."Попробуйте это:

GeoPoint point = new GeoPoint((int) (26.863966 * 1E6), (int) (75.7669383 * 1E6));

Причина: ваш (int) результат составляет 26 и 75, что должно быть где-то около северного полюса.Проверьте документацию:

Создает GeoPoint с заданной широтой и долготой, измеренными в микродеградах (градусах * 1E6).

0 голосов
/ 22 февраля 2012

Проблема в вашей точке зрения. Попробуйте эти пункты.

GeoPoint point = new GeoPoint((int) 19240000,(int) -99120000);
0 голосов
/ 22 февраля 2012

Я использовал этот код для решения своей проблемы.

  double mLatitude = 26.863966000000000;
  double mLongtitude = 75.766938300000000;
  GeoPoint point = new GeoPoint((int) (mLatitude * 1E6),(int) (mLongtitude * 1E6));

Теперь он работает нормально.

и ответ WarrenFaith также верен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...