Creating a new marker on a map
Interesting question,

I haven't found an obvious best way to do this.

For sure, sending true as a parameter should always be avoided, I'd rather see

var IS_USER_LOCATION = true;
$scope.addMarker(position.coords.latitude, position.coords.longitude, IS_USER_LOCATION);


though probably I would create 2 functions, 1 called addMarker and 1 called addUserMarker.

Finally, it amused me that the first 2 parameters in both calls are properties of the same object, so why not just ask for a coordinates object ?

$scope.addMarker = function ( coordinates ) {
    $scope.markers.push({
        latitude: parseFloat(coordinates.latitude),
        longitude: parseFloat(coordinates.longitude),
        icon: "img/marker-map.png";
    });
}

$scope.addUserMarker = function ( coordinates ) {
    $scope.markers.push({
        latitude: parseFloat(coordinates.latitude),
        longitude: parseFloat(coordinates.longitude),
    });
}

$scope.addUserMarker(position);

$scope.populateMarkers = function(locations) {
    for (var i = 0; i &lt; locations.length; i++) {
        $scope.addMarker(locations[i]);
    }
}