Here api 有没有办法在地图上添加我的自定义POI?

Here api 有没有办法在地图上添加我的自定义POI?,here-api,Here Api,我的数据库中有很多POI,包括位置属性。如何根据我在地图上的位置添加这些POI?我在这里发现SDK有类似“按类别浏览热门地点”的api,但这些类别是在这里预定义的。我不认为我可以将我的POI添加到这里并通过这些API进行搜索 我知道一个解决方案,通过在地图上添加集群标记。但是,如果每次都在数据库中检索POI,则会很困难且成本高昂。就像找到一个圆区域(半径为10英里)内的所有POI一样。对于在地图上添加自定义POI,您有更好的解决方案吗 谢谢。您可能正在查找。您可以使用添加自定义图像的自定义POI

我的数据库中有很多POI,包括位置属性。如何根据我在地图上的位置添加这些POI?我在这里发现SDK有类似“按类别浏览热门地点”的api,但这些类别是在这里预定义的。我不认为我可以将我的POI添加到这里并通过这些API进行搜索

我知道一个解决方案,通过在地图上添加集群标记。但是,如果每次都在数据库中检索POI,则会很困难且成本高昂。就像找到一个圆区域(半径为10英里)内的所有POI一样。对于在地图上添加自定义POI,您有更好的解决方案吗


谢谢。

您可能正在查找。

您可以使用添加自定义图像的自定义POI(标记),代码如下:

初始化后,单击“地图打开”按钮

SearchRequest searchRequest = new SearchRequest("Water");
searchRequest.execute(discoveryResultPageListener);
然后添加此方法:

private ResultListener<DiscoveryResultPage> discoveryResultPageListener = new ResultListener<DiscoveryResultPage>() {
    @Override
    public void onCompleted(DiscoveryResultPage discoveryResultPage, ErrorCode errorCode) {

        if (errorCode == ErrorCode.NONE) {

            List<DiscoveryResult> s_ResultList = discoveryResultPage.getItems();
            for (DiscoveryResult item : s_ResultList) {
                /*
                 * Add a marker for each result of PlaceLink type.For best usability, map can be
                 * also adjusted to display all markers.This can be done by merging the bounding
                 * box of each result and then zoom the map to the merged one.
                 */
                if (item.getResultType() == DiscoveryResult.ResultType.PLACE) {
                    PlaceLink placeLink = (PlaceLink) item;
                    addMarkerAtPlace(placeLink);
                    Log.e("nameeee   ",""+placeLink.getTitle());
                }
            }
        } else {
            Toast.makeText(m_activity,
                    "ERROR:Discovery search request returned return error code+ " + errorCode,
                    Toast.LENGTH_SHORT).show();
        }
    }
};
private ResultListener discoveryResultPageListener=new ResultListener(){
@凌驾
未完成公共无效(DiscoveryResultPage DiscoveryResultPage,错误代码错误代码){
如果(errorCode==errorCode.NONE){
List s_ResultList=discoveryResultPage.getItems();
对于(发现结果项:s_结果列表){
/*
*为PlaceLink类型的每个结果添加一个标记。为了获得最佳可用性,可以
*也调整为显示所有标记。这可以通过合并边界来完成
*框,然后将贴图缩放到合并的贴图。
*/
if(item.getResultType()==DiscoveryResult.ResultType.PLACE){
PlaceLink PlaceLink=(PlaceLink)项;
添加标记位置(placeLink);
Log.e(“nameee”,“”+placeLink.getTitle());
}
}
}否则{
Toast.makeText(m_活动,
“错误:发现搜索请求返回返回错误代码+”+错误代码,
吐司。长度(短)。show();
}
}
};
在此之后,添加自定义标记的方法

private void addMarkerAtPlace(PlaceLink placeLink) {
    Image img = new Image();
    try {
        img.setImageResource(R.drawable.camping);

    } catch (Exception e) {
        e.printStackTrace();
    }

    MapMarker mapMarker = new MapMarker();
    mapMarker.setIcon(img);
    mapMarker.setTitle(placeLink.getTitle());
    mapMarker.setCoordinate(new GeoCoordinate(placeLink.getPosition()));
    m_map.addMapObject(mapMarker);
    m_map.setCenter(new GeoCoordinate(placeLink.getPosition()), Map.Animation.NONE);

    m_map.setZoomLevel(13);
    List<MapObject> m_mapObjectList = new ArrayList<>();
    m_mapObjectList.add(mapMarker);
}
private void addMarkerAtPlace(PlaceLink PlaceLink){
图像img=新图像();
试一试{
img.setImageResource(R.drawable.camping);
}捕获(例外e){
e、 printStackTrace();
}
MapMarker MapMarker=新的MapMarker();
mapMarker.setIcon(img);
setTitle(placeLink.getTitle());
设置坐标(新的地理坐标(placeLink.getPosition());
m_map.addMapObject(mapMarker);
m_map.setCenter(新地理坐标(placeLink.getPosition()),map.Animation.NONE);
m_map.setZoomLevel(13);
List m_mapObjectList=新建ArrayList();
m_mapObjectList.add(mapMarker);
}

谢谢您的回复。我想这是我正在寻找的正确链接。我只是按照这里的API说明,想根据这个链接上传我自己的POI,但我得到了“用户未授权执行此操作”错误,用户名和密码是什么?我如何获取或注册一个,它们是否是登录此网站的组合?默认情况下,自定义位置扩展不包括在评估计划中。您需要与支持部门联系,以激活它进行评估()。主要原因是,此服务为您的自定义POI(上载、管理等)提供了后端服务和管理界面,需要手动激活,并且当前未与developer.here.com帐户连接。感谢您的澄清。