我对java和android编程比较陌生,我想根据我点击HERE地图的点来获取坐标。我真的希望你们能帮我解决这个问题。
编辑:
这是我试图实现的代码,但是,它返回了我的错误:
错误:(354,53)错误:找不到符号变量PointF:
private void addDestination() {
image.setImageResource(R.drawable.marker);
GeoCoordinate endpoint = map.pixelToGeo(PointF);
MapMarker destination = new MapMarker(endpoint,image);
if (destination != null)
{
map.removeMapObject(destination);
}
else
{
map.addMapObject(destination);
}
}
答案 0 :(得分:0)
PointF是一种数据类型,因此调用“map.pixelToGeo(PointF)”没有意义,您需要使用具体数据调用它。
简而言之: 您需要侦听点击事件(或长按或任何您想要处理的事件),并获得反映屏幕坐标的PointF数据。然后你可以通过pixelToGeo将屏幕坐标转换成地理坐标,你可以用它来添加地图标记或你想在地图上做什么。
一些帮助您入门的代码:
通过将gestureListener注册到mapview,可以听取地图上的点击事件(以检索PointF屏幕坐标)。意味着,在成功的mapengine init之后,你会做类似的事情:
yourMapViewInstance.getMapGesture().addOnGestureListener(yourGestureHandlerImpementation, 10, true);
并且在你的gestureHandler实现中,你可以覆盖几个事件(click,longpress等),例如你可以为longpress执行以下操作:
private MapGesture.OnGestureListener yourGestureHandlerImpementation = new MapGesture.OnGestureListener.OnGestureListenerAdapter()
{
@Override
public boolean onLongPressEvent(PointF p) {
GeoCoordinate c = map.pixelToGeo(p);
// c is your geoccordinate on the map, where you clicked on the screen
// [...]
}
}