我正在尝试使用 SVGTileProvider
在 Google IO 2013 app 中找到.我无法弄清楚如何在谷歌地图上定位图像。我已将其缩小到类(class)的这一部分。这些不是纬度/经度坐标,但不知何故它们必须来自纬度/经度坐标。有谁知道这些是什么或它们来自哪里?
mBaseMatrix.setPolyToPoly(
new float[]{
0, 0,
limits.width(), 0,
limits.width(), limits.height()
}, 0,
new float[]{
40.95635986328125f, 98.94217824936158f,
40.95730018615723f, 98.94123077396628f,
40.95791244506836f, 98.94186019897214f
}, 0, 3);
更新
第一组神秘数字大致转换为纬度/经度 37.783887,-122.405107。
更新 2
这些方法帮助我将纬度转换为 y 值,反之亦然。我如何为 X 和经度执行此操作?
public static double y2lat(double aY) {
return Math.toDegrees(2 * Math.atan(Math.exp(Math.toRadians(aY))) - Math.PI / 2);
}
public static double lat2y(double aLat) {
return Math.toDegrees(Math.log(Math.tan(Math.PI / 4 + Math.toRadians(aLat) / 2)));
}
最佳答案
原来这些是世界坐标。
这里是一些将经纬度转换为 x/y 的 java 代码。
public static float lat2y(double aLat) {
return (float) (((1 - Math.log(Math.tan(aLat * Math.PI / 180) + 1 / Math.cos(aLat * Math.PI / 180)) / Math.PI) / 2 * Math.pow(2, 0)) * 256);
}
public static float lon2x(double lon) {
return (float) ((lon + 180f) / 360f * 256f);
}
关于android - Google IO 2013 应用神秘值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167584/