java - 我应该使用哪些 Android API?简单的 map 应用

标签 java android google-maps-api-3

我会使用标准 map API 吗?我问的原因是我希望 map 是我在校园的 Photoshop 中制作的自定义图像。我发现另一所大学的人做了类似的事情。我该如何制作这样的东西?

http://s3.appbrain.com/screen?id=2110362890445967243&i=1

像这样的东西必须离线吗?它还能提供您当前的地理位置吗?谢谢。

最佳答案

我以前做过,不太难。

忘掉 map API。您只需要 map 上所需区域的精确缩放图像。

只需要四个角的经纬度和图片的宽高即可。完成后,您可以做一些相对简单的数学运算,将手机 GPS 坐标转换为图像上的 X、Y 点。

我在 2010 年为 Android Lollapalooza 应用程序使用了芝加哥格兰特公园的卡通形象。我的问题实际上稍微困难一些,因为 map 被垂直挤压并稍微移动了几度,所以我的数学添加以适应为了那个原因。如果您只是想创造一个直接的头顶球,那应该很容易。

这是我用来将 Long/Lat 值转换为点的效用函数。它不会正是您所需要的,因为它具有与我使用的图像关联的特定值,但可能会让您朝着正确的方向前进。

public static PointF GPSToMap(double latitude, double longitude, 
        double minLat, double minLon, double maxLat, double maxLon,
        long width, long height, String xExpr, String yExpr)
{
    double numerator;
    double denominator;

    numerator = latitude - minLat;
    denominator = maxLat - minLat;
    double x = width - ((numerator/denominator*width));
    numerator = longitude - minLon;
    denominator = maxLon - minLon;
    double y = height - ((numerator/denominator*height));

    Double dblX = new Double(x+(y*0.434026)-((x-100)*0.180));
    Double dblY = new Double(y*0.99);

    MathEval math = new MathEval();

    dblY += math.evaluate(yExpr); //-40
    dblX += math.evaluate(xExpr); //-15
    return new PointF(dblX.floatValue(), dblY.floatValue());
}

关于java - 我应该使用哪些 Android API?简单的 map 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823973/

相关文章:

javascript - 通过 addDomListener 方法中的初始化函数传递变量

android - onListitemClick 从数据库获取列值

angularjs - 根据 ng-repeat 变量的值设置不同的 map 标记图标

java - Vaadin datepicker翻译月份

java - 如何始终在 spring 应用程序中启用我的 Hibernate 过滤器?

android - 从Marketplace下载带有两个Launcher组件的应用程序后,点击 "Open"会导致崩溃

android - 如何暂停和继续收听来自 CvCameraViewListener2 的帧

javascript - 错误 :InvalidValueError: setCenter: not a LatLng or LatLngLiteral: in property lat: not a number

java - 即使执行成功后控制也没有返回提示的可能原因是什么?

java - 在哪里放置 REST Assured 测试