【问题标题】:placing a pinpoint marker to my Google maps在我的谷歌地图上放置一个精确的标记
【发布时间】:2012-04-27 03:18:22
【问题描述】:

好的,我以前问过这个问题。得到了一个答案。我将更深入地了解我正在做的事情。我正在为拥有多家商店的企业创建一个应用程序。我有一个布局,显示每个商店的按钮。单击其中一个按钮,它会将您带到另一个带有两个按钮的视图。在这个视图中有一个按钮,当你点击它时,它会为你调用商店,让它工作得很好。当您单击同一视图中的另一个按钮时,它会将您带到谷歌地图并向您显示商店的位置。这一切都很好。但我想要的是一个标记也显示在地图上。我不需要它做任何事情,只需要向客户展示商店所在的位置。这是我正在使用的代码--->

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;

    }
}

【问题讨论】:

  • 是的,这是我之前的帖子...我需要更多帮助...我试过了,如果你看到我在上面的代码中有它。我整天在互联网上寻找答案。我得到并且不知道该做什么或如何使用此代码执行此操作。

标签: android google-maps google-maps-markers


【解决方案1】:

@Erik Graul

查看本教程,它会帮助你

http://mobiforge.com/developing/story/using-google-maps-android

【讨论】:

    【解决方案2】:
    【解决方案3】:
    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();
        }
    
    }
    

    【讨论】:

    • 我是否必须重写我的代码才能使用它?对不起,我是新手。我不确定将其放在我的代码中的哪个位置。我知道底部是第二个java类。我尝试在我的代码中使用第一个。我从 GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(),(int) event.getY()) 上的“事件”中收到错误消息一行代码。
    • 对不起,兄弟...我似乎无法让它为我工作。我感谢您的帮助!!!但是这个代码蚂蚁与我的代码一起工作。如果你觉得。如果你可以的话。写出我的代码,然后插入你的代码,看看它是否有效。并发布它听到这样我就可以看到如何做到这一点。将不胜感激,但不一定需要。
    • 我一直在努力解决这个问题。看视频,在谷歌上搜索,试图找到适合这个的东西。该代码有效。我有大约 10 个商店位置运行相同的代码。这一切都有效。我只想要一个该死的大头针在每张地图上标记我的商店位置。但再次感谢您的帮助!!!
    • 好的。我一直在搞乱你给我的这段代码。我让它工作。但我有另一个问题。标记出现。但它仅在您触摸屏幕时显示,并且您触摸屏幕的两个位置就是放置标记的位置。然后它卡在地图上的那个点......我也稍微改变了我的代码。
    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2017-12-29
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多