Skip to content

Releases: BruceShankle/AltusMappingEngineiOS

Automatic Marker Image Scaling

27 Sep 09:19
Compare
Choose a tag to compare

screen shot 2014-09-27 at 4 56 38 am

Apple's recently introduced the iPhone 6 and iPhone 6 Plus. We have updated Altus to account for some changes introduced by these devices. At a high level:

  • These are the first iOS devices where the physical resolution of render target the GPU is drawing to is by default different than the physical resolution of the screen.
  • With these devices, Apple has introduced a Zoom mode that allows the change the scale and thus affect how things appear. The intent of Zoom mode is to make things appear a bit larger to the user.
  • On iPhone 6 and iPhone 6 Plus, scaling is done for apps that don't have @3x resolution image assets.
  • Even when an application does have appropriately scaled assets (@3x resolution images, etc.), by default, there is still a scaling (downscaling on iPhone 6 Plus, upscaling on iPhone 6) step to the physical screen because the screen's physical resolution is different the the GPU render target resolution.

The bottom line is that on iPhone 6 and iPhone 6 Plus scaling operations are occurring in some form, by default, in most cases. The type of and the amount of scaling can vary depending on a variety of factors.

For a more detailed explanation, please visit our wiki and read:
http://wiki.ba3.us/index.php/September_26,_2014_-_iOS_Release_v1.9-1-g67bad06

Altus 1.9 introduces a new API for this feature:
http://dev1.ba3.us/ios/doc/Classes/MEMapViewController.html#//api/name/autoScaleMarkerImages

And some new callbacks for notifying you when scales change:
http://dev1.ba3.us/ios/doc/Protocols/MEMapViewDelegate.html#//api/name/deviceScaleChanged:

Memory optimizations

05 Sep 03:46
Compare
Choose a tag to compare

Decrease memory used by height profiling and terrain query system.

Support min / max level in pre-generated clustered marker maps.

04 Sep 08:25
Compare
Choose a tag to compare
v1.8-52-ga60c438

Support min and max level in pre-generated clustered marker maps.

Height profiling fix.

23 Aug 10:25
Compare
Choose a tag to compare

Address height profile queries above 85N and below 85S.

Additional polygon API function.

Add API for changing style of polygon based on its string id.

Fix polygon tessellation issue.

25 Jul 07:34
Compare
Choose a tag to compare

Polygons that crossed the antemeridian added using addPolygonToVectorMap were sometimes not drawing the correct shape.

New vector line API, new shader management system

19 Jul 08:40
Compare
Choose a tag to compare

We've added a simple API for adding a line segment to a vector map such that it animates in sync with the rest of the engine. This allows you to 'tack on' segments of a line in scenarios where you might be displaying a route.

We also removed our legacy shader management system and replaced with a new one.

For developers with mission critical applications, please do thorough testing with this release to ensure all scenarios work correctly. If you see any issues, please report them.

NOTE: Altus 1.x will soon go into maintenance mode as we begin rolling out Altus 2.0.

Contact info@ba3.us for details.

Patch for 64-bit Support

01 Jul 20:19
Compare
Choose a tag to compare

This fixes a small type conversion problem related to 64-bit size_t usage.

Map priorities and in-engine polygon hit detection system.

24 Jun 05:37
Compare
Choose a tag to compare

Engine / SDK

  • Added map priority system to enable finer-grained control over how map resources are scheduled. Example code on using this new API is can be found here. Notes from the SDK docs here:

    setMapPriority:priority:
    Value to set the priority to. Default is 1. The lower the value, the greater the priority. Priority 0 is treated as a special case. In the general case you will not need to use this API. By default, all maps default to priority 1 and there is no special treatment to any layer with regards to how resources get scheduled for loading. The engine will not exceed the maxTilesInFlight setting in order to rate limit resource loading and requests to tile providers. The default tiles in flight setting is 7. In some scenarios, you might desire to have a level of control over priority and tiles in flight. For example, if you have a custom map where resources are served by your own METileProvider derived class and if the production of tiles for the map is CPU intensive, you might decide to make that layer be scheduled after other layers by increasing its priority number. In that way, it will not block maps that might load faster. This can give the perceptions of faster loading to the user. If you have an advanced tile provider (see the TileFactory examples in our reference application) that is already capable of throttling the processing of requests and you want to insure that it is never ‘starved’ by maps that may take a long time to load, you can set the priority of the layer to 0. But you must be diligent in doing this as maps with priority 0 will always have all visible tiles requested and outstanding tile requests can go beyond the maxTilesInFlight setting.

  • Added in-engine polygon hit detection system for polygons on vector maps. See MEVectorMapDelegate protocol. Enabled by setting polygonHitDetectionEnabled on MEVectorMapInfo when adding a vector map. Example code for using this new API can be found here.

  • Made vertex buffer distances optional on MEVectorMapDelegate protocol.

  • Added optional string id for AddPolygon function. This gets returned in a polygon hit event.

AltusDemo Reference Application:

  • Added Stress test category and several stress tests to demonstrate how map priorities work in different scenarios.
  • Add Polygon test for demonstrating new Polygon hit-testing system.
  • Added alert message support to METest base class.
  • Added Test to show cumulative map loading times.
  • Add WMS TileWorker that demonstrates how to download raster tiles from WMS servers.
  • Make network caching optional in all example network tile workers.
  • Port all WMS tests from older reference application to AltusDemo.
  • Add fractal map layer to demonstrate a computationally expensive tile provider.