我正在构建一个android应用程序,我必须从一个日期/时间跟踪另一个用户并部署使用多段线的制造商? 作为对服务器的响应,我在列表中收到多个纬度/经度。现在我想像他们正在播放的视频一样一个一个地部署它们,我知道如何添加标记我只想控制那里部署.E标记A在部署2秒后部署,标记B应该部署并与具有聚标记C,D也是如此。等我应该如何能够实现这一目标。计时器,线程?任何帮助或参考,算法,将是伟大的,虽然我已经搜索了这样的例子,我找不到它。 在此先感谢控制标记部署。
Q
控制标记部署。
2
A
回答
0
您可以使用Handler执行此任务。
我张贴了个例子吧,我还没有运行它,但我希望它会成功运行:
private final Handler mHandler = new Handler(Looper.getMainLooper());
private List<LatLng> mLatLngs;
private PutMarkerRunnable mRunnable;
private int mNoOfMarkersPlaced = -1;
private void showMarkers(List<LatLng> latLngs) {
mLatLngs = latLngs;
mHandler.post(mRunnable);
}
private class PutMarkerRunnable implements Runnable {
@Override
public void run() {
// write code to add marker
map.addMarker();
mNoOfMarkersPlaced++;
if (mNoOfMarkersPlaced != mLatLngs.size()) {
// scheduling next marker to be placed after 3 seconds
mHandler.postDelayed(mRunnable, 3000);
}
}
}
0
好,谢谢社区..但我一直在终于能够通过做到这一点。标记它是正确的,因为这真的对我有用!
首先我们使用动画我们的相机..
CameraPosition cameraPosition =
new CameraPosition.Builder()
.target(new LatLng(0,0))
.bearing(45)
.tilt(90)
.zoom(googleMap.getCameraPosition().zoom)
.build();
googleMap.animateCamera(
CameraUpdateFactory.newCameraPosition(cameraPosition),
ANIMATE_SPEEED_TURN,
new CancelableCallback() {
@Override
public void onFinish() {
}
@Override
public void onCancel() {
}
}
);/**
*
* Callback that highlights the current marker and keeps animating to the next marker, providing a "next marker" is still available.
* If we've reached the end-marker the animation stops.
*
*/
CancelableCallback simpleAnimationCancelableCallback =
new CancelableCallback(){
@Override
public void onCancel() {
}
@Override
public void onFinish() {
if(++currentPt < markers.size()){
CameraPosition cameraPosition =
new CameraPosition.Builder()
.target(targetLatLng)
.tilt(currentPt<markers.size()-1 ? 90 : 0)
//.bearing((float)heading)
.zoom(googleMap.getCameraPosition().zoom)
.build();
googleMap.animateCamera(
CameraUpdateFactory.newCameraPosition(cameraPosition),
3000,
simpleAnimationCancelableCallback);
highLightMarker(currentPt);
}
}
};
可以2个android.location.Location对象之间进行计算的轴承。由于我们正在使用com.google.android.gms.maps.model.LatLng对象,因此我们首先需要将它们转换为Location对象。
private Location convertLatLngToLocation(LatLng latLng) {
Location location = new Location("someLoc");
location.setLatitude(latLng.latitude);
location.setLongitude(latLng.longitude);
return location;
}
一旦我们有2点位置的对象,我们可以计算出2之间的轴承这是我们需要把在相机上转换到目标(EndLocation所)时。
private float bearingBetweenLatLngs(LatLng beginLatLng,LatLng endLatLng) {
Location beginLocation = convertLatLngToLocation(beginLatLng);
Location endLocation = convertLatLngToLocation(endLatLng);
return beginLocation.bearingTo(endLocation);
}
我们将使用这个数字来计算的中间点的坐标。一旦我们有了这些坐标,我们就可以将跟踪标记设置到新的位置。
long elapsed = SystemClock.uptimeMillis() - start;
double t = interpolator.getInterpolation((float)elapsed/ANIMATE_SPEEED);
double lat = t * endLatLng.latitude + (1-t) * beginLatLng.latitude;
double lng = t * endLatLng.longitude + (1-t) * beginLatLng.longitude;
LatLng intermediatePosition = new LatLng(lat, lng);
trackingMarker.setPosition(intermediatePosition); 我们还将使用新的标记位置更新我们的多段线,从而在多段线上创建拖尾效果。
private void updatePolyLine(LatLng latLng) {
List<LatLng> points = polyLine.getPoints();
points.add(latLng);
polyLine.setPoints(points);
}
相关问题
- 1. 大厅标记replease部署
- 2. 版本控制和部署
- 3. Maven - 存储库标记防止部署
- 4. 制定记得失败的部署
- 5. 控制标记matlab plot
- 6. Javascript,控制onbeforeunload标记
- 7. “部署目标”不仅仅是控制编译器警告吗?
- 8. 服务版本控制部署策略
- 9. 如何控制TFS中的部署
- 10. 部署版本的源控制问题
- 11. 策略部署EF控制数据库
- 12. Teamcity控制应用程序部署?
- 13. Kohana 3部署控制器问题
- 14. 部署目标
- 15. 强制OpenLayers标记层在顶部绘制,并在底部标记图层
- 16. 来自Google地图外部的控制标记infowindow API
- 17. 来自外部的控制标记事件
- 18. XCode 4目标部署目标与项目部署目标
- 19. TeamCity + MSBuild:使用VCS内部编号标记部署
- 20. iOS部署目标
- 21. iphone:部署目标
- 22. Xcode部署目标
- 23. JBoss AS 7部署 - 使用部署扫描器还是控制台回购?
- 24. WebSphere 8.5管理控制台部署与AdminApp部署(JAX-WS不初始化)
- 25. 控制詹金斯外部记录?
- 26. Android部署定制
- 27. Team Foundation Service + Git内部部署版本控制器
- 28. 发现H3标签的控制和设定的标头标记的标记如下所示内部文本
- 29. 删除部署/复制控制器openshift cli来
- 30. 限制在户外访问模块部署控制台5.0.d
感谢Bhawna,但我真的很感激处理程序示例应用上的标记deployment.Since我从服务器端接收数据的较大块说45对LAT/LNGS的..我将如何应用处理程序。 – Nbi
如果你看到它,请将我的答案标记为正确。谢谢 – Nbi