MapPolyline QML Type | Qt Location 5.15.18

- Qt 5.15
- Qt Location
- QML Types
- MapPolyline QML Type
- Qt 5.15.18 Reference Documentation

# MapPolyline QML Type

The MapPolyline type displays a polyline on a map. More...

Import Statement: | import QtLocation 5.15
Since: | QtLocation 5.0

- List of all members, including inherited members

## Properties

- autoFadeIn : bool
- backend : MapPolyline.Backend
- line
  - line.color : color
  - line.width : int
- path : list<coordinate>

## Methods

- void addCoordinate(coordinate)
- coordinate containsCoordinate(coordinate)
- coordinate coordinateAt(index)
- void insertCoordinate(index, coordinate)
- int pathLength()
- void removeCoordinate(index)
- void removeCoordinate(coordinate)
- void replaceCoordinate(index, coordinate)
- void setPath(geopath path)

## Detailed Description

The MapPolyline type displays a polyline on a map, specified in terms of an ordered list of coordinates. The coordinates on the path cannot be directly changed after being added to the Polyline. Instead, copy the path into a var, modify the copy and reassign the copy back to the path.

     var path = mapPolyline.path;
     path[0].latitude = 5;
     mapPolyline.path = path;

Coordinates can also be added and removed at any time using the addCoordinate and removeCoordinate methods.

By default, the polyline is displayed as a 1-pixel thick black line. This can be changed using the line.width and line.color properties.

### Performance

MapPolylines have a rendering cost that is O(n) with respect to the number of vertices. This means that the per frame cost of having a polyline on the Map grows in direct proportion to the number of points in the polyline.

Like the other map objects, MapPolyline is normally drawn without a smooth appearance. Setting the opacity property will force the object to be blended, which decreases performance considerably depending on the hardware in use.

### Example Usage

The following snippet shows a MapPolyline with 4 points, making a shape like the top part of a "question mark" (?), near Brisbane, Australia. The line drawn is 3 pixels in width and green in color.

     Map {
         MapPolyline {
             line.width: 3
             line.color: 'green'
             path: [
                 { latitude: -27, longitude: 153.0 },
                 { latitude: -27, longitude: 154.1 },
                 { latitude: -28, longitude: 153.5 },
                 { latitude: -29, longitude: 153.5 }
             ]
         }
     }

## Property Documentation

autoFadeIn : bool

This property holds whether the item automatically fades in when zooming into the map starting from very low zoom levels. By default this is `true`. Setting this property to `false` causes the map item to always have the opacity specified with the QtQuick::Item::opacity property, which is 1.0 by default.

This property was introduced in Qt 5.14.

backend : MapPolyline.Backend

This property holds which backend is in use to render the map item. Valid values are MapPolyline.Software and MapPolyline.OpenGLLineStrip and MapPolyline.OpenGLExtruded. The default value is MapPolyline.Software.

Note: The release of this API with Qt 5.15 is a Technology Preview. Ideally, as the OpenGL backends for map items mature, there will be no more need to also offer the legacy software-projection backend. So this property will likely disappear at some later point. To select OpenGL-accelerated item backends without using this property, it is also possible to set the environment variable QTLOCATION_OPENGL_ITEMS to 1. Also note that all current OpenGL backends won't work as expected when enabling layers on the individual item, or when running on OpenGL core profiles greater than 2.x.

This property was introduced in Qt 5.15.

line group
line.color : color
line.width : int

This property is part of the line property group. The line property group holds the width and color used to draw the line.

The width is in pixels and is independent of the zoom level of the map. The default values correspond to a black border with a width of 1 pixel.

For no line, use a width of 0 or a transparent color.

path : list<coordinate>

This property holds the ordered list of coordinates which define the polyline.

## Method Documentation

void addCoordinate(coordinate)

Adds the specified coordinate to the end of the path.

See also insertCoordinate, removeCoordinate, and path.

coordinate containsCoordinate(coordinate)

Returns true if the given coordinate is part of the path.

This method was introduced in QtLocation 5.6.

coordinate coordinateAt(index)

Gets the coordinate of the polyline at the given index. If the index is outside the path's bounds then an invalid coordinate is returned.

This method was introduced in QtLocation 5.6.

void insertCoordinate(index, coordinate)

Inserts a coordinate to the path at the given index.

This method was introduced in QtLocation 5.6.

See also addCoordinate, removeCoordinate, and path.

int pathLength()

Returns the number of coordinates of the polyline.

This method was introduced in QtLocation 5.6.

See also path.

void removeCoordinate(index)

Removes a coordinate from the path at the given index.

If index is invalid then this method does nothing.

This method was introduced in QtLocation 5.6.

See also addCoordinate, insertCoordinate, and path.

void removeCoordinate(coordinate)

Removes coordinate from the path. If there are multiple instances of the same coordinate, the one added last is removed.

If coordinate is not in the path this method does nothing.

See also addCoordinate, insertCoordinate, and path.

void replaceCoordinate(index, coordinate)

Replaces the coordinate in the current path at the given index with the new coordinate.

This method was introduced in QtLocation 5.6.

See also addCoordinate, insertCoordinate, removeCoordinate, and path.

void setPath(geopath path)

Sets the path using a geopath type.

This method was introduced in Qt 5.10.

See also path.