Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用谷歌地图在安卓系统中获取用户当前位置并在其上添加标记_Java_Android_Google Maps_Location - Fatal编程技术网

Java 如何使用谷歌地图在安卓系统中获取用户当前位置并在其上添加标记

Java 如何使用谷歌地图在安卓系统中获取用户当前位置并在其上添加标记,java,android,google-maps,location,Java,Android,Google Maps,Location,我开发的应用程序有谷歌API,所以我可以把地图放在我的应用程序 我在获取用户当前位置时遇到问题,我希望: 当用户打开地图活动时,它会在她的位置上显示地图和标记。我已经在做谷歌API的工作了,但是我遇到了用户当前位置和标记的问题。 这是我的代码(它显示我在海洋中!!): alert.setButton2(“获取地址”, 新建DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框, int(其中){ //TODO自动生成的方法存

我开发的应用程序有谷歌API,所以我可以把地图放在我的应用程序 我在获取用户当前位置时遇到问题,我希望: 当用户打开地图活动时,它会在她的位置上显示地图和标记。我已经在做谷歌API的工作了,但是我遇到了用户当前位置和标记的问题。 这是我的代码(它显示我在海洋中!!): alert.setButton2(“获取地址”, 新建DialogInterface.OnClickListener(){

public void onClick(对话框接口对话框,
int(其中){
//TODO自动生成的方法存根
地理编码器地理编码器=新地理编码器(
getBaseContext(),Locale.getDefault();
试一试{
列表地址=geocoder.getFromLocation(touchedPoint.getLatitudeE6()/1E6,touchedPoint.getLatitudeE6()/1E6,1);
OverlayItem OverlayItem=新的OverlayItem(接触点,“Whats up”,“第二串”);
CustomPinpoint custom=新的CustomPinpoint(d,MapsActivity.this);
自定义.insertPinpoint(覆盖项);
添加(自定义);
if(address.size()>0){
字符串显示=”;
for(int i=0;i

我有一个关于地图的噩梦,请修复我的代码

请检查下面的示例

(一)

(二)

在第二个中,您可以检查如何获取地址


谢谢

如果您只想向用户显示当前位置,可以在mapactivity中使用MyLocationOverlay类。
它将在位置本身上绘制标记。

我尝试使用第二个链接,但该链接不起作用,请先确认answer@user1257040--如果检查正确,则可以理解1)它显示地图2)它检查用户位置并将地图居中到该位置3)标记pin位于地图的中心(xml)从第2点和第3点,您可以看到标记位于用户位置。我检查了第二个链接,并运行了它,但它只是向我显示地图,那么哪个链接将为我提供所有步骤?我的位置显示仅用于标记,还是也将向我显示我所在的位置?它将使用标记显示您在地图上的当前位置。它只需要在Manifesty中获得位置权限,OverlayItem呢?它做同样的事情吗?不。在它中,你必须给出你想要标记的位置。它有助于标记多个点
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // TODO Auto-generated method stub
                            Geocoder geocoder = new Geocoder(
                                    getBaseContext(), Locale.getDefault());

                            try {
                                List<Address> address = geocoder.getFromLocation(touchedPoint.getLatitudeE6() / 1E6,touchedPoint.getLatitudeE6() / 1E6,1);
                                OverlayItem overlayItem = new OverlayItem( touchedPoint, "Whats up", "2nd String");
                                CustomPinpoint custom = new CustomPinpoint(d,MapsActivity.this);
                                custom.insertPinpoint(overlayItem);
                                overlaylist.add(custom);
                                if (address.size() > 0) {
                                    String display = "";
                                    for (int i = 0; i < address.get(0)
                                            .getMaxAddressLineIndex(); i++) {
                                        display += address.get(0)
                                                .getAddressLine(i) + "\n";
                                    }

                                    Toast t = Toast.makeText(
                                            getBaseContext(), display,
                                            Toast.LENGTH_LONG);
                                    t.show();

                                }
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } finally {
                            }
                        }
                    });