Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Android 在Google Maps v2中获取地图标记ID_Android_Google Maps_Google Maps Markers_Google Maps Android Api 2 - Fatal编程技术网

Android 在Google Maps v2中获取地图标记ID

Android 在Google Maps v2中获取地图标记ID,android,google-maps,google-maps-markers,google-maps-android-api-2,Android,Google Maps,Google Maps Markers,Google Maps Android Api 2,我正在从SQLite数据库获取标记数据。我将这些数据存储在数组列表中 在我的活动中,我还创建了两个标记之间的路线。其中一个标记是用户的当前位置,用户单击随机标记,它将显示此标记和用户当前位置之间的路线。 但我有问题。因为我不知道我怎么知道哪个标记被点击了?有什么想法吗 注意:我将此工作用于路由 我的数据库 MapsActivity.java 添加标记时,您可以始终使用marker.setTagID,当用户单击标记时,请尝试marker.getTag以查找单击的标记。您可以使用HashMap将标

我正在从SQLite数据库获取标记数据。我将这些数据存储在数组列表中

在我的活动中,我还创建了两个标记之间的路线。其中一个标记是用户的当前位置,用户单击随机标记,它将显示此标记和用户当前位置之间的路线。 但我有问题。因为我不知道我怎么知道哪个标记被点击了?有什么想法吗

注意:我将此工作用于路由

我的数据库

MapsActivity.java


添加标记时,您可以始终使用marker.setTagID,当用户单击标记时,请尝试marker.getTag以查找单击的标记。

您可以使用HashMap将标记与其他信息进行映射:但此链接包含infowindows单击事件。我对标记单击有问题。是的,但我建议你应用相同的逻辑,在你将标记添加到映射时使用HashMap,然后在你的onMarkerClick中使用map.getmarker获取与标记相关的数据。我会尝试一下,让你知道结果。谢谢你,好的,先生。好的,在我的代码中有。功能。此函数接受LatLng数据类型。我的意思是我需要得到哪个标记被点击并得到它的位置。你从哪里得到这些标记?您的数据来源是什么?您的源代码是否包含唯一的内容?如果是,将该Id设置为标记,然后单击标记时,检查标记并找出它是哪个标记。希望这能让老师明白我在用SQLite做这个。我把它们保存在数据库里。但我几乎有25个标记。当你在SQLite中存储数据时,必须有一个主键吗?正当在地图上添加标记时,将该id设置为键。然后,当您从marker获得回调时,从tag获得id,使用该id再次查询数据库并检索数据。
SQLiteDatabase db=dbHelper.getReadableDatabase();
        String[] getColumnName={"bakim_enlem,bakim_boylam,bakim_title"};
        Cursor imlec=db.query("bakim_yerleri", getColumnName, null, null, null, null, null);

        while(imlec.moveToNext())
        {
            mMap.addMarker(new MarkerOptions().position(new LatLng
                    (imlec.getDouble(imlec.getColumnIndex("bakim_enlem")),imlec.getDouble(imlec.getColumnIndex("bakim_boylam"))))
                    .title(imlec.getString(imlec.getColumnIndex("bakim_title"))).
                    icon(BitmapDescriptorFactory.fromResource(R.drawable.mapmarker)));

        }


        }



  //route code
@Override
public boolean onMarkerClick(final Marker marker)
{
   //in default, you can write here and down there-> LatLng marker1
   if (marker.equals(**?**))
    {
        CoordinatorLayout rootLayout = (CoordinatorLayout) findViewById(R.id.mapCoordinatorLayout);
        Snackbar.make(rootLayout, "Rota oluşturuluyor...", Snackbar.LENGTH_LONG).show();
        GoogleDirection.withServerKey(serverKey)
                .from(suanKonumumuz)
                .to(**?**)
                .transportMode(TransportMode.DRIVING)
                .execute(this);
    }
    return true;
}