Используя этот вопрос stackoverflow , я попытался применить некоторые пользовательские стили к представлению карты Android.
Стиль, по сути, просто делает воду черной
mapstyle_json.js:
[
{
featureType: 'water',
elementType: 'geometry',
stylers: [{color: '#000000'}]
},
{
featureType: 'water',
elementType: 'labels.text.fill',
stylers: [{color: '#515c6d'}]
},
{
featureType: 'water',
elementType: 'labels.text.stroke',
stylers: [{color: '#17263c'}]
}
]
Моя основная деятельность:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MapView mapView = (MapView) findViewById(R.id.mapView);
final android.content.Context context = this;
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); // Without this line, the styling works as intended
try {
// Customise the styling of the base map using a JSON object defined
// in a raw resource file.
boolean success = googleMap.setMapStyle(
MapStyleOptions.loadRawResourceStyle(
context, R.raw.mapstyle_json));
if (!success) {
Log.e("1", "Style parsing failed.");
}
} catch (Resources.NotFoundException e) {
Log.e("1", "Can't find style. Error: ", e);
}
Log.d("1", "onMapReady: something");
LatLng coordinates = new LatLng(45.832119, 6.865575);
googleMap.addMarker(new MarkerOptions().position(coordinates).title("hello"));
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 12));
mapView.onResume();
}
});
}
}
Без настройкиТип карты (с использованием типа карты по умолчанию), стилизация работает как надо.Должна быть возможность стилизовать карту типов TERRAIN, учитывая связанный вопрос.(Возможно только с javascript).
Почему этот стиль не применяется к карте типов местности?Возможно ли это в Android mapView?
РЕДАКТИРОВАТЬ:
Код основан на собственном руководстве Google, с использованием исходного кода ресурса: https://developers.google.com/maps/documentation/android-sdk/styling
Может быть, этоGoogle API v2 vs v3 проблема.Насколько я понимаю, Android использует API v2.Проблема связана с v3