MapPolyline limits and performance

Has anybody played much with the Maps and MapPolyline? What are the limits for number of points? How does performance degrade as the number goes up? I don't have an actual device to test on.

Prior to CIQ 3.0, I have an app that draws it's own bread crumb map and I'd limit the number of points to 400. I'd add one every time I traveled more than 5 yards. Once it filled up, I'd remove every other point and then double the minimum distance to add points. This kept a reasonable number.

So is there a reasonable limit for the MapPolyline? If you keep adding points, does it do any of its own trimming? There is no way to modify MapPolyline other than add points. So to do my own trimming, I need to keep a separate array of the points, do the trimming there, and then re-build a new MapPolyline from scratch.

There is MapPolyline.clear in the specs but in the simulator at least, I get symbol not found errors.
  • ekutter

    The only limit on the MapPolyline is that only one polyline is allowed to be displayed on the screen due to performance reasons, however there is no limit on the number of points that can be added to a polyline. Adding a immensely huge number of points to polyline would effect the performance of rendering the on the screen but its up to the app to decide on it.

    The api do not necessarily do any trimming of the points in a polyline, it is the responsibility of the app to decide.

    MapPolyline.clear() supposedly should clean all the points from the polyline. I will create a ticket to track "Symbol Not Found Error". Can you verify this error with the latest fw/sdk if this is still happening. There are quite a number of bug fixes with the latest fw/sdk.
  • as of 3.01, still no MapPolyline.clear().

    ------
    Could not find symbol clear.
    Symbol Not Found Error
    in clear (T:\mbsimulator\submodules\technology\monkeybrains\virtual-machine\api\WatchUi.mb:473)
    ------

    Also, with this latest beta I can no longer build for the 1030 if I select CIQ3.0. And if I set it to CIQ2.4, I don't get any mapping in the simulator.
  • ekutter

    Thank you for verifying this error. I will raise the priority for this ticket.
  • Also, with this latest beta I can no longer build for the 1030 if I select CIQ3.0. And if I set it to CIQ2.4, I don't get any mapping in the simulator.


    What behavior are you seeing when building for 1030 ? Can you provide more details for this error.
  • I'm pretty sure this was working with the 3.0 SDK but not now with the 3.0.1 SDK. If I select CIQ 3.0 for the target, it won't let me even select the 1030. If I manually add it to the manifest.xml file, I get the following error when I try to run it. Interesting that it still says 3.0.0 in the error message even though I'm using the 3.0.1 CIQ sdk. It definitely was working as I was able to build it and download it to my actual device.

    BUILD: ERROR: Device 'edge1030' does not support SDK version '3.0.0'.
  • ekutter,

    What you are seeing is correct. We are waiting to bump the CIQ versions for Edge devices that will support 3.x as their software release including those changes publicly has been delayed slightly. When the device software that supports Connect IQ 3.x is released, we will release an sdk with support for it. If we were to have it build now, any 3.x APIs would cause device crashes on any Edge running the 2.x virtual machine.

    Thanks,
    - Coleman
  • Thanks. Somehow I had this working at one point as I am 90% sure I was able to run it in the simulator and see the new MapView on the 1030 and 100% sure I was able to build it and view MapView objects on my 1030 device itself. Any word on when this should be working both in the simulator and the device? There were a number of issues running it on the device with 5.28 such as just a single stock home marker and no polyline objects showing. It also took up the whole screen so no way to bring up the menu for zooming in/out.

    Just noticed there is now beta 5.33 that'll I'll install and see what happens. I believe I still have the app on my device.