我无法绘制两个地理坐标之间的路径。这是密码 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); } } }

我无法绘制两个地理坐标之间的路径。这是密码 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

我只想画一条线,连接代码中给出的两个地理坐标。这两个点正在显示,但我无法得到我想要画的线。 我提到了,但输出不是我想要的。

希望这有帮助

HelloItemizedOverlay itemizedoverlay=新的HelloItemizedOverlay(可绘制,mapView.getContext())


我的问题是画线,而不是定位两点。
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);
        }
    }
}