(geo_type, coordinates)
* Returns true, if the specified coordinates belong to a Multi geometry (e.g. MultiPolygon or MultiLineString)
    :param geo_type:
    :param coordinates:
    :return:
* Returns true, if the specified coordinates belong to a Multi geometry (e.g. MultiPolygon or MultiLineString)
    :param geo_type:
    :param coordinates:
    :return:
* Returns true if the specified coordinates belong to a Multi geometry ( e . g . MultiPolygon or MultiLineString ) : param geo_type : : param coordinates : : return :
def is_multi(geo_type, coordinates):
    """
    * Returns true, if the specified coordinates belong to a Multi geometry (e.g. MultiPolygon or MultiLineString)
    :param geo_type:
    :param coordinates:
    :return:
    """

    if geo_type == GeoTypes.POINT:
        is_single = len(coordinates) == 2 and all(isinstance(c, int) for c in coordinates)
        return not is_single
    elif geo_type == GeoTypes.LINE_STRING:
        is_array_of_tuples = all(len(c) == 2 and all(isinstance(ci, int) for ci in c) for c in coordinates)
        is_single = is_array_of_tuples
        return not is_single
    else:
        assert geo_type == GeoTypes.POLYGON
        return get_array_depth(coordinates, 0) >= 2
def is_multi ( geo_type , coordinates ) : if geo_type == GeoTypes . POINT : is_single = len ( coordinates ) == 2 and all ( isinstance ( c , int ) for c in coordinates ) return not is_single elif geo_type == GeoTypes . LINE_STRING : is_array_of_tuples = all ( len ( c ) == 2 and all ( isinstance ( ci , int ) for ci in c ) for c in coordinates ) is_single = is_array_of_tuples return not is_single else : assert geo_type == GeoTypes . POLYGON return get_array_depth ( coordinates , 0 ) >= 2