2015-11-23 4 views
2

В настоящее время я использую API Карт Google, и я пытаюсь подключить файл GEOJSON с маркерами в качестве слоя к карте.Не удается решить символ 'GeoJsonLayer'

Линии я взял из документации, и я в настоящее время пытаюсь использовать это:

GeoJsonLayer layer = new GeoJsonLayer(getMap(), R.raw.geoJsonFile, 
     getApplicationContext()); 

Ошибка Cannot resolve symbol 'GeoJsonLayer'

Я добавил компилировать org.json:json:20090211 моих зависимостей, но это не решило проблема.

Я использую кодировку для ОС Android с помощью Android Studio.

Любая помощь пожалуйста? Благодаря

EDIT:

Код класса:

package com.example.macbookair........; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import com.google.maps.android.geojson.GeoJsonLayer; 

import org.json.JSONException; 

import java.io.IOException; 

public class Maps extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 
    private GeoJsonLayer layer1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 


     /* MapFragment mapFrag = (MapFragment) getFragmentManager().findFragmentById(R.id.map); 
     try { 
      GeoJsonLayer layer1 = new GeoJsonLayer(mapFrag.getMap(), R.raw.mapjson, 
        getApplicationContext()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     layer1.addLayerToMap(); */ 
     // Add a marker in Sydney and move the camera 
    } 
} 

Закомментированный часть кода работает, но делает сбой приложения, без комментировал кода карты штраф и нагрузки отлично работает на моем устройстве.

+0

У вас есть правильные/требуемый импорт в файл класса? – ChrisStillwell

+0

Какие правильные и/или требуемые импорты буквально ничего не содержат в документации, и я не могу найти что-либо еще в отношении GeoJson для Android в Google? – AdheelB

+0

'import com.google.maps.android.geojson.GeoJsonLayer;' Здесь есть демонстрационная активность: https://github.com/googlemaps/android-maps-utils/tree/dba3b0d8a9657ebab8c67a4f50bd731437a229bc/demo – ChrisStillwell

ответ

4

Вам необходимо добавить google-maps-utils в ваш файл build.gradle.

dependencies { 
    compile 'com.google.maps.android:android-maps-utils:x.y.z' 
} 

Где x.y.z - версия. Последний из них: 0.4.

Вы можете также нуждаться в google-maps зависимость (и играть-услуги базы), и могут быть добавлены в build.gradle файл в списке:

dependencies { 
    compile 'com.google.maps.android:android-maps-utils:x.y.z' 
    compile 'com.google.android.gms:play-services-maps:8.3.0' 
    compile 'com.google.android.gms:play-services-base:8.3.0' 
} 

Если вы хотите, чтобы все библиотеки из плей-услуг, вы можете пропустить эти две зависимости и добавить все стыковые услуги зависимостей, например:

compile 'com.google.android.gms:play-services:8.3.0' 

Помните, что это добавит все стыковые услуги LIBS в вашем APK, и это может привести к пределу 64k метода и больший размер APK ,

Reference to install play-services

Reference to Google Maps Utils

+0

Это исправлено, хотя теперь из той же строки, getMap и geoJsonFile не работает – AdheelB

+0

Что возвращает функция 'getMap()'? Являются ли карты из api? Я думаю, что это должно быть 'map.getMap()'. Но, похоже, это еще одна проблема. –

+0

он говорит, что не может разрешить метод getMap() и не может разрешить символ geoJsonFile, функция getMap должна вернуть карту, я верю ... она была найдена в документации Google для карт уровня JSON – AdheelB

Смежные вопросы