我想在谷歌地图上显示多个标记。我的latlng
坐标是从解析数据库中提取的,但我无法看到标记。我的第二个问题是,我想显示一个标题是餐厅名称与标记,我如何做?
这是我的代码:
private class putMarker extends AsyncTask> { @Override protected ArrayList doInBackground(Void... params) { // TODO Auto-generated method stub try { Toast.makeText(getApplicationContext(), longitude + " " + latitude, Toast.LENGTH_SHORT).show(); ParseQuery query = new ParseQuery( "Details"); ParseGeoPoint myGeoPiont = new ParseGeoPoint(latitude, longitude); query.whereNear("location", myGeoPiont); query.setLimit(10); ob = query.find(); for (ParseObject resObj : ob) { ParseGeoPoint location = resObj .getParseGeoPoint("location"); restaurantName = (String) resObj.get("RestaurantName"); LatLng resLatLng = new LatLng(location.getLatitude(), location.getLongitude()); Toast.makeText(getApplicationContext(), restaurantName, Toast.LENGTH_SHORT) .show(); PiontList.add(resLatLng); } } catch (Exception e) { // TODO: handle exception } return PiontList; } protected void onPostExecute(ArrayList latlngList) { for(LatLng res: latlngList) { MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(res); markerOptions.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); googleMap.addMarker(markerOptions); } } }
请帮帮我。
我看到这里有几个问题。
正如@Raghunandan所提到的,您不能从doInBackground()更新UI,因此您不能从那里添加标记。但是,您可以在这里创建MarkerOptions对象,然后将它们附加到PostExecute/或承载Google Maps的activity中的GoogleMap。
在onPostExecute()中,您没有为标记设置任何标题或代码段。无论何时创建标记,请确保设置标题。然后当用户单击标记时,默认行为将您的rest名称显示为标题。代码将是这样的(@inzimam Tariq IT也提到过:
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(res)
.setTitle(restaurantName)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
googleMap.addMarker(markerOptions);
试试这个
// Create lat long points
Latlng[] point_new = new LatLng[8];
point_new[0] = new LatLng(31.5301843, 74.3207487);
point_new[1] = new LatLng(31.5214693,74.3236027);
point_new[2] = new LatLng(31.5194393, 74.3257327);
point_new[3] = new LatLng(31.4942166, 74.3004533);
point_new[4] = new LatLng(31.4864646, 74.2911203);
point_new[5] = new LatLng(31.4803596, 74.2787933);
point_new[6] = new LatLng(31.4764716, 74.2638203);
point_new[7] = new LatLng(31.4775236, 74.2628873);
// Add markers
for (int i = 0; i < point_new.length; i++) {
MarkerOptions markerOptions = new MarkerOptions()
.position(point_new[i]);
marker = mMap.addMarker(markerOptions);
marker.setTitle("Points");
marker.setSnippet("Distance = 9.6 km, Time = 20 minute/s");
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.p));
}
//将相机设置为变焦级别为9的最后一点
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(point_new[7], 9));
这可能是由于onPostExecute()中的googleMap对象不可达。请确保googleMap是全局声明的。
如果可能,请粘贴整个代码以便更好地评估
在我的应用程序中,我使用的是谷歌地图,首先我是通过标记显示用户当前的位置,并通过一个透明的圆圈显示其准确性,现在当我想添加另一个标记到代表我以前的位置的同一点时,相同的代码对我不起作用,请有人帮我找出代码的错误,我只是想在一个地图视图中添加多个标记 下面是我用来显示两个标记的代码:- 通过使用MapOverlay类,我可以在地图上放置一个显示用户当前位置的pin,但当我使用MapOverlay1显
有人有更好的主意吗?
我正在尝试将本地计算机(Windows x64)上的JProfiler GUI连接到远程计算机(Windows x64)上运行的JProfiler代理。远程机器有两个JVM,一个是JBOSS JVM,另一个是Java应用程序,通过YAJSW的包装服务作为Windows服务。这些JVM由Windows用户配置文件1启动。我将JProfiler代理zip文件粘贴到远程机器上,并通过mstsc登录。当我
我正在尝试集成statsd datadog。 我已经用-e dd_DOGSTATSD_NON_LOCAL_TRAFFIC=“true”启动了dd代理容器,apiKey也正确(容器日志证实了这一点) 我正在使用官方代码示例测试集成 在datadog仪表板上的metrics explorer中,我看到数据为 问题 但无法在datadog仪表板上的任何地方找到我推送的确切指标,如何通过statsd查看我
我有一个问题:我目前正在为一个图书馆(它是为学校)的网络应用程序的项目工作。 并且我想返回我的视图与3变量表单查询,但这似乎不起作用。它首先适用于2人,但不适用于3人。 下面是我的代码: 但是$ResultsLoan似乎从来没有进入我的视野...谁能帮帮我吗?