gpt4 book ai didi

java - 在mapbox android中添加数字到标记

转载 作者:行者123 更新时间:2023-12-01 16:25:54 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 Mapbox 中以编程方式向标记添加数字以获得下图的结果

MARKERS WITH NUMBERS

这是显示一些标记的 map 代码

public class DepartMissionFragment extends Fragment {
private MapView mapView;

private static final String TAG = "DirectionsActivity";


@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
Mapbox.getInstance(requireActivity(), getString(R.string.access_token));
View view = inflater.inflate(R.layout.fragment_mission_depart, container, false);

mapView = view.findViewById(R.id.mapView20);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {

mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(33.589886, -7.603869))
.title("marker one"));
// It is possible to use .setIcon() to get a custom icon from ressources


mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(33.589790, -7.603989))
.title("marker two"));

mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(33.589190, -7.603089))
.title("marker three"));


mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(33.588790, -7.603289))
.title("etc.."));

mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(33.580790, -7.603989))
.title("etc...."));
mapboxMap.setStyle(getString(R.string.navigation_guidance_day), new Style.OnStyleLoaded() {

@Override
public void onStyleLoaded(@NonNull Style style) {


}
});

}
});
return view;
}

@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
}

@Override
public void onStart() {
super.onStart();
mapView.onStart();
}

@Override
public void onResume() {
super.onResume();
mapView.onResume();
}

@Override
public void onPause() {
super.onPause();
mapView.onPause();
}

@Override
public void onStop() {
super.onStop();
mapView.onStop();
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}

@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}

@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
}

我正在寻找一种为标记提供数字的方法,对我来说正确的方法是从可绘制对象中添加自定义标记。

欢迎任何其他方法。

最佳答案

您可以使用符号图层从存储为 GeoJSON 要素的坐标添加图标,而不是使用 MapboxMap#addMarker 方法并依赖于可绘制资源来显示标记,如 this example 所示。适用于 Android 的 Mapbox map SDK。

将代表坐标的每个Feature添加到a GeoJSON时对象,您可以向每个 Featureproperties 对象添加一个属性,其中包含要在该坐标的标记上显示的数字。然后,除了如示例所示添加 SymbolLayer#setPropertiesiconImage 之外,您还可以为填充的每个符号添加一个 textField添加到 GeoJSON 的属性。这个symbol layer clustering example显示了应用于集群用例的类似工作流程。聚类示例与您的实现之间的区别主要在于,您不是从聚类计数中获取要显示的数字,而是从为坐标指定的 GeoJSON 属性中获取它。

关于java - 在mapbox android中添加数字到标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62149869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com