android mapbox 添加多个点,使用Android Mapbox SDK显示多个标记的自定义infoWindow

我想要在地图上可视化多个标记。它的完美展示和onMarkerTap从数据库检索的显示信息为JSON。我想要做的是在自定义布局或底部工作表中显示信息。当用户点击标记时,底部表单将出现,并显示与该标记相关的信息。我正在使用下面的代码来显示多个标记。这里MapViewListener部分onTapMarker我已经设置了marker.getTitle()在Toast中显示标记名称以进行测试。但它为所有标记显示相同的标记名称。但在地图上显示的infoWindow中显示精确的数据。我该如何解决这个问题?使用Android Mapbox SDK显示多个标记的自定义infoWindow

FloatingActionButton layerButton = (FloatingActionButton)findViewById(R.id.layer);

layerButton.setOnClickListener(new View.OnClickListener() {

public void getData() {

String url = Config.DATA_URL;

StringRequest stringRequest = new StringRequest(url, new Response.Listener() {

@Override

public void onResponse(String response) {

showJSON(response);

}

},

new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();

}

});

requestQueue.add(stringRequest);

}

public void showJSON(String response){

try {

JSONObject jsonObject = new JSONObject(response);

JSONArray jsonArray = jsonObject.getJSONArray(Config.JSON_ARRAY);

for (int i=0;i

JSONObject singleMarker = jsonArray.getJSONObject(i);

String poi_name = singleMarker.getString(Config.POI_NAME);

String poi_latitude = singleMarker.getString(Config.POI_LATITUDE);

String poi_longitude = singleMarker.getString(Config.POI_LONGITUDE);

Double dbl_latitude = Double.parseDouble(poi_latitude);

Double dbl_longitude = Double.parseDouble(poi_longitude);

final Marker marker = new Marker(poi_name, poi_thananame, new LatLng(dbl_latitude, dbl_longitude));

marker.setMarker(getResources().getDrawable(R.mipmap.poi_shopping));

mapView.addMarker(marker);

mapView.setMapViewListener(new MapViewListener() {

@Override

public void onShowMarker(MapView pMapView, Marker pMarker) {

}

@Override

public void onHideMarker(MapView pMapView, Marker pMarker) {

}

@Override

public void onTapMarker(MapView pMapView, Marker pMarker) {

Toast.makeText(getApplicationContext(), " Name: "+marker.getTitle()+, Toast.LENGTH_LONG).show();

}

@Override

public void onLongPressMarker(MapView pMapView, Marker pMarker) {

}

@Override

public void onTapMap(MapView pMapView, ILatLng pPosition) {

}

@Override

public void onLongPressMap(MapView pMapView, ILatLng pPosition) {

}

});

}

} catch (JSONException e) {

e.printStackTrace();

}

//

// mapView.setCenter(new LatLng(dbl_latitude, dbl_longitude));

// mapView.setZoom(18);

}

//END OF GET DATA///

@Override

public void onClick(View v) {

clearLayerFAB.setVisibility(View.VISIBLE);

getData();

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值