2012-04-27 5 views
1

Хорошо, я спросил об этом раньше. Получил один ответ. Я собираюсь углубиться в то, что я делаю. Я создаю приложение для бизнеса с несколькими магазинами. У меня есть макет, который показывает кнопку в каждом магазине. нажмите на одну из кнопок, чтобы перейти к другому виду с двумя кнопками на нем. В этом представлении есть кнопка, которая, когда вы нажимаете на нее, называет магазин для u, получила эту работу просто отлично. другая кнопка в том же представлении, когда вы нажмете на нее, она приведет вас к картам Google и покажет, где находится местоположение магазина. Все это прекрасно работает. Но я хочу, чтобы маркер отображался на карте. Мне не нужно ничего делать, кроме как показать клиенту, где находится магазин. Это мой код, я использую --->размещение точечного маркера на моих картах Google

import com.google.android.maps.GeoPoint; 

import com.google.android.maps.MapActivity; 

import com.google.android.maps.MapController; 

import com.google.android.maps.MapView; 

import com.google.android.maps.MyLocationOverlay; 

import android.os.Bundle; 

public class Main extends MapActivity { 

    MapController mControl; 

    GeoPoint GeoP; 

    MapView navView; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     navView = (MapView) findViewById(R.id.navView); 

     navView.displayZoomControls(true); 

     navView.setBuiltInZoomControls(true); 

      navView.setSatellite(true); 

      navView.getOverlays().add(new MyLocationOverlay(this,navView)); 




     double lat = 40.325874; 

     double longi = -76.002211; 

     GeoP = new GeoPoint((int) (lat *1E6), (int) (longi * 1E6)); 

     mControl = navView.getController(); 

     mControl.animateTo(GeoP); 

     mControl.setZoom(20); 

     } 

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

    } 
} 
+0

видеть этот пост http://stackoverflow.com/questions/10339759/wanting-to-know-how-to-place-a-pinpoint-marker-to-my-lat-long -using-this-code –

+0

Да, это мой пост из ранее ... Мне нужна дополнительная помощь ... Я пробовал это, если вы видите, что у меня это в коде выше. Я всю жизнь искал ответ в Интернете. Я получаю и понятия не имею, что делать или как это сделать с помощью этого кода. – KodiakBear211

ответ

1
GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(),(int) event.getY()); 
Drawable srcdrawable = getApplicationContext().getResources().getDrawable(R.drawable.pin_blue); 
CustomItemizedOverlay srcitemizedOverlay = new CustomItemizedOverlay(srcdrawable, getApplicationContext()); 
OverlayItem srcoverlayitem = new OverlayItem(p, "Hello!", "This is your Location."); 
srcitemizedOverlay.addOverlay(srcoverlayitem); 
mapView.getOverlays().clear(); 
mapView.getOverlays().add(srcitemizedOverlay); 
mapController.animateTo(srcpoint); 
mapController.setZoom(16); 

Используйте выше код в методе ontouch также используйте нижеследующий CustomItemizedOverlay.java класс

public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> { 

    private final ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>(); 

    private Context context; 

    public CustomItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 

    public CustomItemizedOverlay(Drawable defaultMarker, Context context) { 
     this(defaultMarker); 
     this.context = context; 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     return mapOverlays.get(i); 
    } 

    @Override 
    public int size() { 
     return mapOverlays.size(); 
    } 

    public void addOverlay(OverlayItem overlay) { 
     mapOverlays.add(overlay); 
     this.populate(); 
    } 

} 
+0

Должен ли я переписать свой код, чтобы использовать это? Извините, я новичок. Я не уверен, где разместить это в моем коде. Я знаю, что нижняя часть для второго класса Java. Я попытался использовать первый в своем коде. Я получаю сообщение об ошибке «событие» в GeoPoint p = mapView.getProjection(). FromPixels ((int) event.getX(), (int) event.getY()); строка кода. – KodiakBear211

+0

нет, просто добавьте класс и код выше в метод oncreate –

+0

Мне жаль брата ... Кажется, я не могу заставить это работать для меня. Я ценю вашу помощь!!! Но этот кодовый муравей работает с моим кодом. Если вам это нравится. если сможешь. напишите мой код и вставьте свой код, чтобы узнать, работает ли он. И опубликуйте его, чтобы я мог понять, как это сделать. Было бы полезно, но не обязательно. – KodiakBear211

Смежные вопросы