【问题标题】:How can i get coordinates on tap using HERE java sdk?如何使用 HERE java sdk 获取点击坐标?
【发布时间】:2018-02-12 14:21:24
【问题描述】:

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

}

【问题讨论】:

  • 使用您最喜欢的搜索引擎获取有关该主题的一个或多个教程。
  • 我们需要您知道的更多信息吗?请输入您的实际代码,以便我们为您提供帮助!
  • @NatNgs 我已经发布了我的代码,你能看一下吗?

标签: java android here-api


【解决方案1】:

PointF 是一种数据类型,因此调用“map.pixelToGeo(PointF)”没有意义,您需要使用具体数据调用它。

简而言之: 您需要监听点击事件(或长按,或您想要处理的任何事件),并获得反映屏幕坐标的 PointF 数据。然后,您可以通过 pixelToGeo 将屏幕坐标转换为地理坐标,您可以使用该坐标在地图上添加地图标记或任何您想做的事情。

一些帮助您入门的代码:

聆听地图上的点击事件(检索 PointF 屏幕坐标)是通过将gestureListener 注册到您的地图视图来完成的。意味着,在成功地映射引擎初始化后,你会做这样的事情:

yourMapViewInstance.getMapGesture().addOnGestureListener(yourGestureHandlerImpementation, 10, true);

在你的gestureHandler实现中,你可以覆盖几个事件(点击、长按等),例如你可以为长按做以下事情:

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

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    相关资源
    最近更新 更多