Android Hashmap和Google地图

Android Hashmap和Google地图,android,google-maps,hashmap,Android,Google Maps,Hashmap,我想实现如下内容: 我拥有的 我有带有lat和lng值的JSON数据,我已经把所有这些都放到了Hashmap中,我已经完成了它的工作 我需要什么 如何将这些存储的lat和lng值与更多标记一起放入谷歌地图 我有这个解析JSON数据的代码 ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); JSONPars

我想实现如下内容:

我拥有的 我有带有
lat
lng
值的JSON数据,我已经把所有这些都放到了
Hashmap
中,我已经完成了它的工作

我需要什么 如何将这些存储的
lat
lng
值与更多标记一起放入谷歌地图

我有这个解析JSON数据的代码

    ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();
    JSONParser jParser = new JSONParser();
    JSONArray json = jParser.getJSONFromUrl(url);
    try {
           for(int i = 0; i < json.length(); i++){
                JSONObject c = json.getJSONObject(i);

                String lat = c.getString(TAG_LAT);
                String lng = c.getString(TAG_LNG);



            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();

            // adding each child node to HashMap key => value
            map.put(TAG_LAT, lat);
            map.put(TAG_LNG, lng);

            // adding HashList to ArrayList
            contactList.add(map);
           }
    } catch (JSONException e) {
        e.printStackTrace();
        Log.e("JSON Parser", "Error parsing data " + e.toString());

    }

你应该使用谷歌地图API V2。在中,您可以看到如何将标记添加到
谷歌地图mMap

    // Uses a custom icon.
mSydney = mMap.addMarker(new MarkerOptions()
        .position(SYDNEY)
        .title("Sydney")
        .snippet("Population: 4,627,300"));

在本例中,
SYDNEY
是一个
LatLong
点,标题和片段用于自定义信息窗口。只需浏览Hashmap并将每个标记添加到地图中。您不一定需要将每个标记分配给
标记
变量(就像在
mSydney
的示例中那样)。

问题是在数组上迭代,而不是这样做

for (HashMap<String, String> hashMap : contactList) {
    map.addMarker(new MarkerOptions()
      .position(new LatLng(hashMap.get(TAG_LAT) , hashMap.get(TAG_LNG)))
      .title("Another marker"));
}

是的,我正在使用谷歌地图V2。我可以得到一个对象的贴图、lat和long,但如果我想把多个对象放入贴图-->Iam lost,我不知道如何才能得到所有对象并将其插入addMarker,因为lat和long值的列表仍然相同,贴图上只有一个标记的标题是另一个标记。@Tirolel你的
Json
工作正常吗?您的
Hashmap
是否填写了位置,您是否尝试打印它们?您是否使用Hashmap进行其他操作。如果没有,那么测试我添加的代码。我刚刚测试了它的工作代码Ambda:我只是试着从hashmap打印值,它就在那里,我的意思是lat和lng值也添加了一个hashmap版本。
for (HashMap<String, String> hashMap : contactList) {
    map.addMarker(new MarkerOptions()
      .position(new LatLng(hashMap.get(TAG_LAT) , hashMap.get(TAG_LNG)))
      .title("Another marker"));
}
    mMap = ((SupportMapFragment) 
    getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

    mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

    ArrayList<LatLng> contactList = new ArrayList<LatLng>();

    contactList.add(new LatLng(48.8742, 2.3470));
    contactList.add(new LatLng(0, 0));

    for (LatLng latLon : contactList) {
        mMap.addMarker(new MarkerOptions().position(latLon).title("Another marker"));
    }
ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

//Paris
{
    // creating new HashMap
    HashMap<String, String> map = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    map.put(TAG_LAT, "48.8742");
    map.put(TAG_LNG, "2.3470");

    // adding HashList to ArrayList
contactList.add(map);
}

//London
{
    // creating new HashMap
    HashMap<String, String> map = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    map.put(TAG_LAT, "51.5171");
    map.put(TAG_LNG, "0.1062");

    // adding HashList to ArrayList
    contactList.add(map);
}

for (HashMap<String, String> hashMap : contactList) {
    mMap.addMarker(new MarkerOptions()
        .position(new LatLng(Double.parseDouble(hashMap.get(TAG_LAT)) ,        
            Double.parseDouble(hashMap.get(TAG_LNG))))
        .title("Another marker"));
}
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

    @Override
    public boolean onMarkerClick(Marker arg0) {
        Log.e("onMarkerClick", "test: "+arg0.getTitle());
        return false;
    }
});