【发布时间】:2017-08-10 00:23:58
【问题描述】:
我正在从我的 SQLite 数据库中获取我的标记数据。我将这些数据存储在数组列表中。
在我的活动中,我还创建了 2 个标记之间的路线。 (其中一个标记是用户的当前位置)并且用户单击随机标记,它显示了该标记和用户当前位置之间的路线。 但我有问题。因为我不知道我怎么知道点击了哪个标记?有什么想法吗?
注意:我正在使用这项工作进行路由 https://github.com/akexorcist/Android-GoogleDirectionLibrary
MapsActivity.java
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;
}
【问题讨论】:
-
您可以使用
HashMap将您的标记映射到额外的信息:stackoverflow.com/a/31272741/1584654 -
但此链接包含 infowindows 点击事件。我有标记点击问题。而且它们的点击功能也大相径庭。
-
是的,但我建议您应用相同的逻辑,在将标记添加到地图时使用
HashMap,然后在您的onMarkerClick中获取与标记相关的数据,使用map.get(marker)。
标签: android google-maps google-maps-markers google-maps-android-api-2