Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中绘制圆圈,就像在谷歌地图应用程序中一样_Android_Maps_Geometry - Fatal编程技术网

在android中绘制圆圈,就像在谷歌地图应用程序中一样

在android中绘制圆圈,就像在谷歌地图应用程序中一样,android,maps,geometry,Android,Maps,Geometry,我真的很想知道是否有一些教程或例子,关于如何绘制谷歌地图应用程序中出现的蓝色圆圈(显示你在哪里的那个)。我还想知道,当你放大圆时,它是如何变大的(当你缩小圆时,它会变小,并且在某个点消失)。如果对此有一些建议或指导方针,或者从哪里开始,我将非常感激。谢谢你大多数绘图操作在Canvas类中可用: 据我所知,没有直接绘制蓝色圆圈的方法,但您应该能够通过调用drawCircle()来模拟蓝色圆圈。大多数绘制操作在Canvas类中可用: 据我所知,没有直接绘制蓝色圆圈的方法,但您应该能够通过调用dr

我真的很想知道是否有一些教程或例子,关于如何绘制谷歌地图应用程序中出现的蓝色圆圈(显示你在哪里的那个)。我还想知道,当你放大圆时,它是如何变大的(当你缩小圆时,它会变小,并且在某个点消失)。如果对此有一些建议或指导方针,或者从哪里开始,我将非常感激。谢谢你

大多数绘图操作在Canvas类中可用:


据我所知,没有直接绘制蓝色圆圈的方法,但您应该能够通过调用drawCircle()来模拟蓝色圆圈。

大多数绘制操作在Canvas类中可用:


据我所知,没有直接绘制蓝色圆圈的方法,但您应该能够通过调用drawCircle()来模拟它。

在长时间寻找答案后,我终于找到了解决方案。 这是我的密码:

           int mToR= metersToRadius(55, mapView,p.getLatitudeE6());
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintFill);
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintStroke);
这将绘制圆,其中screenPts是我当前位置的地质点的投影

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}

这就是我计算圆半径的方法。这是我从别的帖子上得到的(http://stackoverflow.com/questions/2077054/how-to-compute-a-radius-around-a-point-in-an-android-mapview)

经过长时间寻找答案,我终于找到了解决办法。 这是我的密码:

           int mToR= metersToRadius(55, mapView,p.getLatitudeE6());
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintFill);
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintStroke);
这将绘制圆,其中screenPts是我当前位置的地质点的投影

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}

这就是我计算圆半径的方法。这是我从别的帖子上得到的(http://stackoverflow.com/questions/2077054/how-to-compute-a-radius-around-a-point-in-an-android-mapview)

我知道我回答了我的问题,但在使用我的应用程序几天后,我注意到,即使是你,圆的半径也会发生变化,我将其设置为始终为55米。如果有人知道为什么会发生这种情况,或者对这个问题有更好的解决方案,我将非常感谢他与我分享。提前谢谢你。我知道我回答了我的问题,但在使用我的应用程序几天后,我注意到即使你,圆的半径也会改变,我把它设置为55米。如果有人知道为什么会发生这种情况,或者对这个问题有更好的解决方案,我将非常感谢他与我分享。先谢谢你。