我无法绘制两个地理坐标之间的路径。这是密码 package com.chleon.mapviewdemo; 导入java.util.List; 导入android.graphics.Canvas; 导入android.graphics.Color; 导入android.graphics.Paint; 导入android.graphics.Path; 导入android.graphics.Point; 导入android.graphics.drawable.drawable; 导入android.os.Bundle; 导入com.google.android.maps.GeoPoint; 导入com.google.android.maps.MapActivity; 导入com.google.android.maps.MapView; 导入com.google.android.maps.Overlay; 导入com.google.android.maps.OverlayItem; 导入com.google.android.maps.Projection; 公共类MainActivity扩展了MapActivity{ 投影; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapView MapView=(MapView)findViewById(R.id.MapView); mapView.SetBuilTinZoomControl(真); List mapOverlays=mapView.getOverlays(); Drawable Drawable=this.getResources().getDrawable( R.可绘制的ic_操作_搜索); HelloItemizedOverlay itemizedoverlay=新HelloItemizedOverlay( 可拉拔的,这个); int-latitude1=(int)(28.619087*1e6); int longitude1=(int)(77.376867*1e6); 地质点=新的地质点(纬度1、经度1); OverlayItem OverlayItem=新的OverlayItem(点,“Prashant”, “我在德里附近的某个地方”); 地质点2=新的地质点(17385812,78480667); OverlayItem overlayitem2=新的OverlayItem(第2点,“Prashant”, “我在海得拉巴”); itemizedoverlay.addOverlay(overlayitem); itemizedoverlay.addOverlay(overlayitem2); 添加(itemizedoverlay); } 受保护的布尔值isRouteDisplayed(){ 返回false; } 类MyOverlay扩展覆盖{ 公共MyOverlay(){ } 公共空白绘制(画布、地图视图、地图视图、布尔阴影){ super.draw(画布、地图视图、阴影); Paint mPaint=新油漆(); mPaint.setDither(true); mPaint.setColor(Color.RED); mPaint.setStyle(绘制、样式、填充和笔划); mPaint.setStrokeJoin(油漆.连接.圆形); mPaint.setStrokeCap(油漆盖圆形); mPaint.设定行程宽度(6); int-latitude1=(int)(28.619087*1e6); int longitude1=(int)(77.376867*1e6); projection=mapView.getProjection(); 地质点=新的地质点(纬度1、经度1); 地质点2=新的地质点(17385812,78480667); 点p1=新点(); 点p2=新点(); 路径路径=新路径(); 投影。顶像素(点,p1); 顶像素投影(点2,p2); path.moveTo(p2.x,p2.y); lineTo路径(p1.x,p1.y); canvas.drawPath(路径,mPaint); } } }
我只想画一条线,连接代码中给出的两个地理坐标。这两个点正在显示,但我无法得到我想要画的线。 我提到了,但输出不是我想要的。希望这有帮助 HelloItemizedOverlay itemizedoverlay=新的HelloItemizedOverlay(可绘制,mapView.getContext())我无法绘制两个地理坐标之间的路径。这是密码 package com.chleon.mapviewdemo; 导入java.util.List; 导入android.graphics.Canvas; 导入android.graphics.Color; 导入android.graphics.Paint; 导入android.graphics.Path; 导入android.graphics.Point; 导入android.graphics.drawable.drawable; 导入android.os.Bundle; 导入com.google.android.maps.GeoPoint; 导入com.google.android.maps.MapActivity; 导入com.google.android.maps.MapView; 导入com.google.android.maps.Overlay; 导入com.google.android.maps.OverlayItem; 导入com.google.android.maps.Projection; 公共类MainActivity扩展了MapActivity{ 投影; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapView MapView=(MapView)findViewById(R.id.MapView); mapView.SetBuilTinZoomControl(真); List mapOverlays=mapView.getOverlays(); Drawable Drawable=this.getResources().getDrawable( R.可绘制的ic_操作_搜索); HelloItemizedOverlay itemizedoverlay=新HelloItemizedOverlay( 可拉拔的,这个); int-latitude1=(int)(28.619087*1e6); int longitude1=(int)(77.376867*1e6); 地质点=新的地质点(纬度1、经度1); OverlayItem OverlayItem=新的OverlayItem(点,“Prashant”, “我在德里附近的某个地方”); 地质点2=新的地质点(17385812,78480667); OverlayItem overlayitem2=新的OverlayItem(第2点,“Prashant”, “我在海得拉巴”); itemizedoverlay.addOverlay(overlayitem); itemizedoverlay.addOverlay(overlayitem2); 添加(itemizedoverlay); } 受保护的布尔值isRouteDisplayed(){ 返回false; } 类MyOverlay扩展覆盖{ 公共MyOverlay(){ } 公共空白绘制(画布、地图视图、地图视图、布尔阴影){ super.draw(画布、地图视图、阴影); Paint mPaint=新油漆(); mPaint.setDither(true); mPaint.setColor(Color.RED); mPaint.setStyle(绘制、样式、填充和笔划); mPaint.setStrokeJoin(油漆.连接.圆形); mPaint.setStrokeCap(油漆盖圆形); mPaint.设定行程宽度(6); int-latitude1=(int)(28.619087*1e6); int longitude1=(int)(77.376867*1e6); projection=mapView.getProjection(); 地质点=新的地质点(纬度1、经度1); 地质点2=新的地质点(17385812,78480667); 点p1=新点(); 点p2=新点(); 路径路径=新路径(); 投影。顶像素(点,p1); 顶像素投影(点2,p2); path.moveTo(p2.x,p2.y); lineTo路径(p1.x,p1.y); canvas.drawPath(路径,mPaint); } } },android,google-maps,android-mapview,Android,Google Maps,Android Mapview,我只想画一条线,连接代码中给出的两个地理坐标。这两个点正在显示,但我无法得到我想要画的线。 我提到了,但输出不是我想要的。希望这有帮助 HelloItemizedOverlay itemizedoverlay=新的HelloItemizedOverlay(可绘制,mapView.getContext()) 我的问题是画线,而不是定位两点。 package com.chleon.mapviewdemo; import java.util.List; import android.graphic
我的问题是画线,而不是定位两点。
package com.chleon.mapviewdemo;
import java.util.List;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import com.google.android.maps.Projection;
public class MainActivity extends MapActivity {
Projection projection;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(
R.drawable.ic_action_search);
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(
drawable, this);
int latitude1 = (int) (28.619087 * 1e6);
int longitude1 = (int) (77.376867 * 1e6);
GeoPoint point = new GeoPoint(latitude1, longitude1);
OverlayItem overlayitem = new OverlayItem(point, "Prashant",
"I'm somewhere near delhi");
GeoPoint point2 = new GeoPoint(17385812, 78480667);
OverlayItem overlayitem2 = new OverlayItem(point2, "Prashant",
"I'm in Hyderabad");
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedoverlay);
}
protected boolean isRouteDisplayed() {
return false;
}
class MyOverlay extends Overlay {
public MyOverlay() {
}
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(6);
int latitude1 = (int) (28.619087 * 1e6);
int longitude1 = (int) (77.376867 * 1e6);
projection = mapView.getProjection();
GeoPoint point = new GeoPoint(latitude1, longitude1);
GeoPoint point2 = new GeoPoint(17385812, 78480667);
Point p1 = new Point();
Point p2 = new Point();
Path path = new Path();
projection.toPixels(point, p1);
projection.toPixels(point2, p2);
path.moveTo(p2.x, p2.y);
path.lineTo(p1.x, p1.y);
canvas.drawPath(path, mPaint);
}
}
}