我想在我的Android应用中添加一个点列表到我的mapbox map。我可以在地图上绘制多边形和线条,但是没有功能可以将单个点绘制到地图上。有没有一个解决方案可以在地图集地图上绘制1000多个点?
这样的事情: 要么 this
我想为Android做这件事并刷新积分并改变他们的位置。
答案 0 :(得分:1)
您可以使用addMarker()
方法(full example)添加单个标记。如果您需要更复杂的视图,还可以创建基于视图的标记(full example)。
答案 1 :(得分:0)
我正在查看文档,看来您可以使用mapbox的注释插件来完成所需的工作! (https://docs.mapbox.com/android/plugins/overview/annotation/#options)
假设您已经初始化了依赖项,则需要执行一些步骤来开始使用此注释插件!
文档详细介绍了如何使用此功能,这确实很有帮助,但是我将提供一个使用此功能创建注释的示例。以下所有代码均取自文档,并按说明进行组装。希望这会有所帮助!
首先将此代码段添加到gradle文件中
repositories {
mavenCentral()
}
dependencies {
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.8.0'
}
接下来,将此代码添加到创建了Mapbox的片段/活动中。
@Override
public void onMapReady(@NonNull final MapboxMap mapboxMap) {
mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
// Use a layer manager here
// create symbol manager object
SymbolManager symbolManager = new SymbolManager(mapView, mapboxMap, style);
// add click listeners if desired
symbolManager.addClickListener(symbol ->
);
symbolManager.addLongClickListener(symbol -> {
});
// set non-data-driven properties, such as:
symbolManager.setIconAllowOverlap(true);
symbolManager.setIconTranslate(new Float[]{-4f,5f});
symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT);
symbolManager.setIconAllowOverlap(true);
symbolManager.setIconIgnorePlacement(true);
// Add symbol at specified lat/lon
Symbol symbol = symbolManager.create(new SymbolOptions()
.withLatLng(new LatLng(60.169091, 24.939876))
.withIconImage(ICON_ID)
.withIconSize(2.0f));
}
});
}