【问题标题】:Adding multiple markers on Google Maps with ArrayList使用 ArrayList 在 Google 地图上添加多个标记
【发布时间】:2019-06-17 01:24:45
【问题描述】:

我正在调用 API,然后将 JSON 数据添加到数组列表中,然后调用数组列表数据并将纬度和经度放置到地图上,放置多个标记。我相信我的问题是从 ArrayList 中获取字符串,但我不知道如何解决它。

我正在从另一个类调用 API

私有 GoogleMap mMap;

ArrayList LatitudeList = new ArrayList();
ArrayList LongitudeList = new ArrayList();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_taxi);
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

    someMethod();


}
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;


    //Log.d("TEST", "BBB");
    String LatMarkers = LatitudeList.toString();
    String LongMarkers = LongitudeList.toString();

    //Log.d("TEST", "AAA");
        double latitude = Double.parseDouble(LatMarkers);
        double longitude = Double.parseDouble(LongMarkers);
        LatLng location = new LatLng(latitude, longitude);

        //Log.d("TEST", "CCC");
        mMap.addMarker(new MarkerOptions().position(location).title("Camera Location"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(location));

    //Log.d("TEST", "DDD");

}

OkHttpClient client = new OkHttpClient();

void someMethod(){
    try {
        String jsonData = new TAXIAPI(client).execute().get();

        JSONObject object = new JSONObject(jsonData);
        JSONArray RunningArray = object.getJSONArray("value");

        for (int i = 0; i < RunningArray.length(); ++i) {

            JSONObject objectInner = new JSONObject(RunningArray.getString(i));
            String Latitude = objectInner.getString("Latitude");
            String Longitude = objectInner.getString("Longitude");


            LatitudeList.add(Latitude);
            LongitudeList.add(Longitude);

            Log.d("APIActivity", "  " + Latitude + "  " + Longitude );
        }
    } catch (Exception e)
    {
        e.printStackTrace();

    }
}

【问题讨论】:

    标签: java android arrays google-maps arraylist


    【解决方案1】:

    您必须在地图同步后致电您的someMethod()

        @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        someMethod();
        }
    

    然后在你的 somemethod() 内部 for 循环中使用其余部分:

    String Latitude = objectInner.getString("Latitude");
    String Longitude = objectInner.getString("Longitude");
    
    double lat =Double.parseDouble(Latidute);
    double lng =Double.parseDouble(Longitude);
    
    
    LatLng location = new LatLng(lat, lng);
    mMap.addMarker(new MarkerOptions().position(location).title("Camera Location"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(location));//this will make camera focus on the last marker location
    

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 2013-09-20
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2014-08-24
      • 1970-01-01
      相关资源
      最近更新 更多