⑴ android 開發使用最新百度地圖如何畫軌跡
android 使用網路地圖畫軌跡
java">importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.Paint.Style;
importandroid.graphics.Path;
importandroid.graphics.Point;
importandroid.os.Bundle;
importcom..mapapi.BMapManager;
importcom..mapapi.GeoPoint;
importcom..mapapi.MapActivity;
importcom..mapapi.MapController;
importcom..mapapi.MapView;
importcom..mapapi.Overlay;
importcom..mapapi.Projection;
{
privateContextmContext;
privateMapViewmapView;
@Override
(){
//TODOAuto-generatedmethodstub
returnfalse;
}
privateGeoPointgpoint1,gpoint2,gpoint3;//連線的點
@Override
protectedvoidonCreate(Bundlearg0){
super.onCreate(arg0);
setContentView(R.layout.map_layout);
BaseApplicationbaseApp=(BaseApplication)this.getApplication();
if(baseApp.mBMapManage==null){
baseApp.mBMapManage=newBMapManager(mContext);
baseApp.mBMapManage.init(baseApp.mStrKey,
newBaseApplication.MyGeneralListener());
}
baseApp.mBMapManage.start();
super.initMapActivity(baseApp.mBMapManage);//初始化mapsdk
mapView=(MapView)findViewById(R.id.bmapView);
mapView.setBuiltInZoomControls(true);
//設置在縮放動畫過程中也顯示overlay,默認為不繪制
mapView.setDrawOverlayWhenZooming(true);
//RouteLinerouteLine=
//(RouteLine)getIntent().getSerializableExtra("routeLine");
//這里畫點和連接線
MyOverlaymyOverlay=newMyOverlay();
mapView.getOverlays().add(myOverlay);
MapControllermapController=mapView.getController();
mapController.zoomIn();
gpoint1=newGeoPoint((int)(2259316*10),
(int)(11396279*10));
gpoint2=newGeoPoint((int)(2259245*10),
(int)(11396226*10));
gpoint3=newGeoPoint((int)(2259121*10),
(int)(11396066*10));
mapController.animateTo(gpoint1);//設置一個起點
}
classMyOverlayextendsOverlay{
@Override
publicvoiddraw(Canvascanvas,MapViewmapView,booleanshadow){
super.draw(canvas,mapView,shadow);
Projectionprojection=mapView.getProjection();
Pointp1=newPoint();
Pointp2=newPoint();
Pointp3=newPoint();
//經度轉像素
projection.toPixels(gpoint1,p1);
projection.toPixels(gpoint2,p2);
projection.toPixels(gpoint3,p3);
//第一個畫筆畫圓
PaintfillPaint=newPaint();
fillPaint.setColor(Color.BLUE);
fillPaint.setAntiAlias(true);
fillPaint.setStyle(Style.FILL);
//將圖畫到上層
canvas.drawCircle(p1.x,p1.y,5.0f,fillPaint);
canvas.drawCircle(p2.x,p2.y,5.0f,fillPaint);
canvas.drawCircle(p3.x,p3.y,5.0f,fillPaint);
//第二個畫筆畫線
Paintpaint=newPaint();
paint.setColor(Color.BLUE);
paint.setDither(true);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStrokeWidth(4);
//連接
Pathpath=newPath();
path.moveTo(p1.x,p1.y);
path.lineTo(p2.x,p2.y);
path.lineTo(p3.x,p3.y);
//畫出路徑
canvas.drawPath(path,paint);
}
}
}
⑵ 如何用c語言編程繪制車輛沿x軸行駛軌跡的動態圖
如果是用gdi的話就是用LineTo函數畫線來畫出你要的圖形,或者用其他圖形庫也行。
⑶ 基於C#的軌跡線繪制
首先,得有計時器。
然後,得有一個數組,放坐標。
聽你的意思每個點之間還希望有一些細化的點。這個我們姑且叫插值點。有幾個點就除間隔即可。可以提前插入點數組里。
最後,有個全局變數存上次用到的點坐標。這個一開始是0。每次計時器跳動就加一個。
結束的時候要判斷數組是不是要用完了。用完了就把計時器關掉。
還有如何把圖片顯示的問題。這個書里應該有,畫圖板之類的例子。我就不說了,我就說演算法。
⑷ 怎麼用C#代碼實現在supermap發布的地圖上自動畫線,根據一些點的經緯度畫出一條軌跡。
C#實現的話需要頻繁的提交請求到伺服器,再生成新頁面重繪地圖。建議用JavaScript(AJAX)在客戶端動態繪制這條軌跡,CustomLayer就是用來做這個的。