小编jar*_*etz的帖子

存储完整的Google地图路线

我希望能够在Google地图上轻松存储和重新显示Google地图路线路线.让我们说从A点到B点,来自Google 的DirectionsResult对象在路线上有100个点,我希望能够存储这条路线并保证下次我绘制它时,方向将经过所有这些点.

我看到人们尝试这样做的方法是序列化整个DirectionsResult对象并将其存储在数据库中.然后,当我们想要重绘路径时,将字符串重新发送,JSON.Parse它,然后尝试将其提供给DirectionsRenderer对象,该对象将在地图上呈现方向.这种方法有三个问题:

1)您在序列化过程中丢失了类型信息,并且由于Google会对对象进行缩小,因此您无法使用类函数可靠地从对象中获取这些值.在最初序列化对象时,您需要首先使用数据访问器函数来构建"占位符"对象,然后在稍后解析序列化字符串时重建Google Maps对象.

2)这在法律上是可疑的.Google Maps TOS表示您不应该永久存储数据,而且其他帖子似乎违反了这一点.

3)对象可能很大,我序列化的一条路径超过64KB.

我还想过尝试从路径中存储几个点,然后使用Waypoints重建它.这种工作方式但是对于免费的API,你最多只能获得8分,所以这并不能保证超过这8分的准确性.此外,它然后绘制沿着路线的航点标记,我认为这可能会使用户感到困惑.

是否有可接受的方法来存储来自Google地图的确切路线,或者是否有针对性地设计API和TOS以防止这种情况发生?谢谢您的帮助.

javascript serialization google-maps google-maps-api-3

12
推荐指数
1
解决办法
4316
查看次数

如何使用Android UiAutomation.injectInputEvent注入click事件

我在我的应用程序中自动测试流程,我在那里安装了设备管理员.要激活大多数设备上的设备管理员(我们假设我没有一些企业API可以让我像三星提供的那样),系统会向用户显示弹出窗口,然后用户必须单击"激活"按钮.

我正在使用Robotium和Android JUnit来推动我的测试.在正常的测试案例中,人们只能与被测试的应用程序和流程进行交互,而不能与出现的任何系统活动进行交互.

该UiAutomation声称让你与利用其他应用程序进行交互访问性框架,然后让一个注入任意输入事件.

所以 - 这就是我要做的事情:

public class AbcTests extends ActivityInstrumentationTestCase2<AbcActivity> {

    private Solo mSolo

    @Override
    public void setUp() {
        mSolo = new Solo(getInstrumentation(), getActivity());

    }

    ...

    public void testAbc(){

        final UiAutomation automation = getInstrumentation().getUiAutomation();         

        MotionEvent motionDown = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN,
                100,  100, 0);

        // This line was added in to give a complete solution
        motionDown.setSource(InputDevice.SOURCE_TOUCHSCREEN);

        automation.injectInputEvent(motionDown, true)
        MotionEvent motionUp = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), KeyEvent.ACTION_UP,
                100, 100, 0);

        // This line was …
Run Code Online (Sandbox Code Playgroud)

testing android ui-automation robotium

6
推荐指数
1
解决办法
3745
查看次数