大佬教程收集整理的这篇文章主要介绍了android – 如何在折线路径上设置谷歌地图v2标记的动画?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
因此,当我单击第二个标记时,我想要将该标记设置为“移动”到第一个标记.但我的问题是,第二个标记没有在折线路径上移动.你可以在下面的图片看到:
这是MapActivity.java:
@Override public Boolean onMarkerClick(Marker arg0) { // if user click the first marker if(this.lokasi_asli.equals(arg0)){ AlertDialog.builder alert = new AlertDialog.builder(MapActivity.this); alert.settitle("First Position") .setIcon(R.drawable.ic_launcher) .setCancelable(true) .setmessage("First Position : " + "\n" + loc_a) .setPositiveButton("Yes",new DialogInterface.onClickListener() { @Override public void onClick(DialogInterface dialog,int which) { dialog.dismiss(); } }) .setNegativeButton("No",int which) { dialog.dismiss(); } }); alert.show(); } else if (this.lokasi_tujuan.equals(arg0)) { //if user click second marker final Boolean hideMarker = false; final Handler handler = new Handler(); final long start = SystemClock.uptimeMillis(); Projection proj = gmap.getProjection(); Point startPoint = proj.toScreenLOCATIOn(lokasi_tujuan.getPosition()); final LatLng startLatLng = proj.fromScreenLOCATIOn(startPoint); final long duration = 5000; final Interpolator interpolator = new LinearInterpolator(); handler.post(new Runnable() { @Override public void run() { long elapsed = SystemClock.uptimeMillis() - start; float t = interpolator.geTinterpolation((float) elapsed / duration); double longid = t * lokasi_asli.getPosition().longitude + (1-t) * startLatLng.longitude; double latid = t * lokasi_asli.getPosition().latitude + (1-t) * startLatLng.latitude; lokasi_tujuan.setPosition(new LatLng(latid,longid)); if(t < 1.0){ // handler.postDelayed(this,16); } else { if(hideMarker){ lokasi_tujuan.setVisible(false); } else { lokasi_tujuan.setVisible(true); } } } });
从谷歌地图获取数据:
@Override protected void onPostExecute(Void result){ super.onPostExecute(result); if(doc != null){ NodeList _nodelist = doc.getElementsByTagName("status"); Node node1 = _nodelist.item(0); String _status1 = node1.getChildNodes().item(0).getNodeValue(); if(_status1.equalsIgnoreCase("OK")) { NodeList _nodelist_path = doc.getElementsByTagName("overview_polyline"); Node node_path = _nodelist_path.item(0); Element _status_path = (Element)node_path; NodeList _nodelist_desTination_path = _status_path.getElementsByTagName("points"); Node _nodelist_dest = _nodelist_desTination_path.item(0); String _path = _nodelist_dest.getChildNodes().item(0).getNodeValue(); List<LatLng> directionPoint = decodePoly(_path); PolylineOptions rectLine = new PolylineOptions().width(10).color(Color.RED).geodesic(true); for (int i = 0; i < directionPoint.size(); i++) { rectLine.add(directionPoint.get(i)); } gmap.addPolyline(rectLinE); mark_opt.position(new LatLng(dest_lat,dest_long)); mark_opt.draggable(true); mark_opt.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)); lokasi_tujuan = gmap.addMarker(mark_opt); } else { Toast.makeText(MapActivity.this,"Maaf,Tidak dapat menemukan rute tujuan\nCoba pilih rute lain yang mendekati",Toast.LENGTH_LONG).show(); } progres_dlg.dismiss(); } } }
如何让第二个标记在折线路径上移动?
任何想法或帮助将不胜感激.
环境:Windows 7,Eclipse,Genymotion.
以上是大佬教程为你收集整理的android – 如何在折线路径上设置谷歌地图v2标记的动画?全部内容,希望文章能够帮你解决android – 如何在折线路径上设置谷歌地图v2标记的动画?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。