如何使用HERE java sdk获取坐标?

时间:2018-02-12 14:21:25

标签: java android here-api

我对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);
        }

}

1 个答案:

答案 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
            // [...]
    }
}