Xbox 地图上样式化的 MapView 上未显示标记 Android
Markers not shown on styled MapView on Mapxbox Android
我需要一些关于 Mapbox 的帮助 Android。我在默认样式的地图上毫无问题地绘制了多段线和一些自定义标记,但是,当我将默认样式更改为自定义样式时,我仍然可以看到多段线但未绘制标记(既不是自定义标记也不是默认标记)。
谁能帮我解决这个问题?
这是我的代码:
//Setting style
mapView.setStyleUrl(Constants.MAP_URL_GREEN);
//Adding polilyne
PolylineOptions options = new PolylineOptions();
for(double[] coordArray : route.getListCoords()) {
options.add(new LatLng(coordArray[0], coordArray[1]));
}
options.color(ContextCompat.getColor(getContext(), R.color.color_end_green));
options.width(5);
mapView.addPolyline(options);
//Adding markers
MarkerOptions currentMarker;
for(Point point : route.getListPoints()){
currentMarker = getMarkerFromPoint(point);
markers.add(mapView.addMarker(currentMarker));
}
其中 getMarkerFromPoint 是:
private MarkerOptions getMarkerFromPoint(Point point) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(point.getLat(), point.getLng()));
//markerOptions.icon(MapUtils.getPointIcon(point, getContext()));
return markerOptions;
}
编辑:我正在使用 MapBox Android SDK 3.2.0。
提前致谢
所以我测试了您的一些代码,但无法重现您遇到的问题。我的应用程序以默认样式地图开始,然后在用户单击时它会更改为我的自定义矢量样式之一。我确实更改了一些可能无意中解决了问题的代码,最显着的更改是使用 LatLng
而不是使用 Point
。我也没有创建标记列表以在创建后添加标记。
List<LatLng> route = new ArrayList<>();
route.add(new LatLng(29.751260, -95.373639));
route.add(new LatLng(29.752881, -95.374454));
route.add(new LatLng(29.755107, -95.374583));
//Adding markers
MarkerOptions currentMarker;
for(int i=0; i<route.size(); i++) {
currentMarker = getMarkerFromPoint(route.get(i));
mapView.addMarker(currentMarker);
}
我的getMarkerFromPoint()
方法:
private MarkerOptions getMarkerFromPoint(LatLng point) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point);
return markerOptions;
}
我希望这可以帮助您解决问题,如果我找到解决方案,我会编辑此答案。
我发现了问题。
我正在通过 json 文件加载离线样式,但是当我将那个 json 导入到我的 mapbox 帐户并更改为在线 URL 时,问题就解决了。
这是个奇怪的问题...
谢谢!
我需要一些关于 Mapbox 的帮助 Android。我在默认样式的地图上毫无问题地绘制了多段线和一些自定义标记,但是,当我将默认样式更改为自定义样式时,我仍然可以看到多段线但未绘制标记(既不是自定义标记也不是默认标记)。
谁能帮我解决这个问题?
这是我的代码:
//Setting style
mapView.setStyleUrl(Constants.MAP_URL_GREEN);
//Adding polilyne
PolylineOptions options = new PolylineOptions();
for(double[] coordArray : route.getListCoords()) {
options.add(new LatLng(coordArray[0], coordArray[1]));
}
options.color(ContextCompat.getColor(getContext(), R.color.color_end_green));
options.width(5);
mapView.addPolyline(options);
//Adding markers
MarkerOptions currentMarker;
for(Point point : route.getListPoints()){
currentMarker = getMarkerFromPoint(point);
markers.add(mapView.addMarker(currentMarker));
}
其中 getMarkerFromPoint 是:
private MarkerOptions getMarkerFromPoint(Point point) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(point.getLat(), point.getLng()));
//markerOptions.icon(MapUtils.getPointIcon(point, getContext()));
return markerOptions;
}
编辑:我正在使用 MapBox Android SDK 3.2.0。
提前致谢
所以我测试了您的一些代码,但无法重现您遇到的问题。我的应用程序以默认样式地图开始,然后在用户单击时它会更改为我的自定义矢量样式之一。我确实更改了一些可能无意中解决了问题的代码,最显着的更改是使用 LatLng
而不是使用 Point
。我也没有创建标记列表以在创建后添加标记。
List<LatLng> route = new ArrayList<>();
route.add(new LatLng(29.751260, -95.373639));
route.add(new LatLng(29.752881, -95.374454));
route.add(new LatLng(29.755107, -95.374583));
//Adding markers
MarkerOptions currentMarker;
for(int i=0; i<route.size(); i++) {
currentMarker = getMarkerFromPoint(route.get(i));
mapView.addMarker(currentMarker);
}
我的getMarkerFromPoint()
方法:
private MarkerOptions getMarkerFromPoint(LatLng point) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point);
return markerOptions;
}
我希望这可以帮助您解决问题,如果我找到解决方案,我会编辑此答案。
我发现了问题。
我正在通过 json 文件加载离线样式,但是当我将那个 json 导入到我的 mapbox 帐户并更改为在线 URL 时,问题就解决了。
这是个奇怪的问题...
谢谢!