我正在使用MapScan类创建一个Maui Map -目前仅适用于Android:
如果我创建了一个从中心等距点的圆,它看起来像一个椭圆。经度的投影看起来短得多。因此,我尝试了不同的缩放轴,但似乎没有工作。上面的代码在两个方向上平等地缩放Map。有什么提示吗?
7cwmlq891#
要在Maui Android的MapScan类中创建一个与中心距离相等的圆,请使用以下代码:
double radius = 100; double lat = CenterLocation.Latitude; double lng = CenterLocation.Longitude; double d = radius / 3963.189; for (double x = 0; x <= 360; x += 10) { double brng = Math.toRadians(x); double latRadians = Math.toRadians(lat); double lngRadians = Math.toRadians(lng); double lat2 = Math.asin(Math.sin(latRadians) * Math.cos(d) + Math.cos(latRadians) * Math.sin(d) * Math.cos(brng)); double lng2 = lngRadians + Math.atan2(Math.sin(brng) * Math.sin(d) * Math.cos(latRadians), Math.cos(d) - Math.sin(latRadians) * Math.sin(lat2)); lat2 = Math.toDegrees(lat2); lng2 = Math.toDegrees(lng2); // Add the point to the map }
通过使用此代码,将从Map的中心生成一个由等距点组成的圆。通过更改radius变量的值,可以更改圆的半径。应输入Map的中心来代替CenterLocation变量。用最适合您的Map的类替换MapScan类。
1条答案
按热度按时间7cwmlq891#
要在Maui Android的MapScan类中创建一个与中心距离相等的圆,请使用以下代码:
通过使用此代码,将从Map的中心生成一个由等距点组成的圆。通过更改radius变量的值,可以更改圆的半径。应输入Map的中心来代替CenterLocation变量。用最适合您的Map的类替换MapScan类。