如何在android的谷歌地图上用标记显示我的当前位置

Posted

技术标签:

【中文标题】如何在android的谷歌地图上用标记显示我的当前位置【英文标题】:how to show my current location with marker on google map in android 【发布时间】:2012-10-05 17:06:27 【问题描述】:

请帮忙。我尝试了一个代码,它应该在谷歌地图上用标记给出我当前的位置。但它不工作。我已经通过 DDMS 和 TELNET 提供了我的位置,但仍然处于黑暗中。我该怎么办??代码是:

package com.chupamobile.android.googlemaps;

import android.location.Location;

public class GoogleMapsActivity extends MapActivity
    private MapView myMap;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myMap = (MapView) findViewById(R.id.mymap);
        initMap();
        initMyLocation();
    

    /**
     * Initialise the map and adds the zoomcontrols to the LinearLayout.
     */
    private void initMap() 
        //myMap = (MapView) findViewById(R.id.mymap);

        View zoomView = myMap.getZoomControls();
        //MapController mc = myMap.getController();
        //mc.setZoom(16);
        LinearLayout myzoom = (LinearLayout) findViewById(R.id.myzoom);
        myzoom.addView(zoomView);
        myMap.displayZoomControls(true);

    

    /**
     * Initialises the MyLocationOverlay and adds it to the overlays of the map
     */
    private void initMyLocation() 

        MyLocationOverlay myLocOverlay = new MyLocationOverlay(this, myMap);
        myLocOverlay.enableMyLocation();
        myLocOverlay.enableCompass();
        myMap.getOverlays().add(myLocOverlay);
        Toast.makeText(getApplicationContext(), "I am In"+myLocOverlay, Toast.LENGTH_LONG).show();


    

    /*public void onLocationChanged(Location location)
        if(location!=null)
            GeoPoint point = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
            MapController mc = myMap.getController();
            mc.animateTo(point);
            mc.setZoom(16);
        

    
*/ 

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

【问题讨论】:

【参考方案1】:

Thenewboston 有一个由 4 部分组成的 Youtube Tutorial,它几乎贯穿了 api 的每个部分、定位位置等。每个视频大约 5 分钟,很容易理解,我想他谈到了定位位置第二个视频。我还发现this 问题的公认答案也可能有助于指导您朝着正确的方向前进。

【讨论】:

感谢您的支持。但有一个问题,我在上面写的整个程序是错误的还是我遗漏了什么? @The Tokenizer 如果到那时没有人给出可靠的答案,我会在这个周末检查一下。 schemas.android.com/apk/res/android" package="com.chupamobile.android.googlemaps" android:versionCode ="100" android:versionName="1.0.0" > 【参考方案2】:

您是否已将此权限 <uses-library android:name="com.google.android.maps"/> and <uses-permission android:name="android.permission.INTERNET"/> 放入清单中?并在您的项目-> 属性-> Android 中选择了 Google API?你也有你的MD5证书吗?完整的官方教程请看这里https://developers.google.com/maps/documentation/android/hello-mapview

【讨论】:

是的,我有。我已经完成了你所说的所有事情。该应用程序显示谷歌地图,但是当我通过 DDMS 或 TELNET 提供 lan 和 lat 时,该应用程序没有响应。 @Dinesh Venkata【参考方案3】:

下载完整的工作演示:

http://www.filedropper.com/androidopenstreetmapview120516a

如果地图没有在模拟器或移动设备中显示,则更改地图 API 密钥。

【讨论】:

以上是关于如何在android的谷歌地图上用标记显示我的当前位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中的谷歌地图上绘制路线并计算多个标记之间的距离

如何在谷歌地图android上设置多个标记?

如何在android的谷歌地图V2上添加谷歌素材图标“我的位置”?

如何在android中的地图上显示当前位置标记?

Android Google Map API 自定义标记在自定义标记上带来谷歌地图数据

应用启动时在 android 谷歌地图中获取当前位置(纬度,经度)