diff --git a/simplekml/base.py b/simplekml/base.py index 038865b..b807235 100644 --- a/simplekml/base.py +++ b/simplekml/base.py @@ -33,8 +33,11 @@ class Kmlable(object): _compiling = False _namespaces = ['xmlns="http://www.opengis.net/kml/2.2"', 'xmlns:gx="http://www.google.com/kml/ext/2.2"'] - def __init__(self): - self._id = str(Kmlable._globalid) + def __init__(self, id=None): + if not id: + self._id = str(Kmlable._globalid) + else: + self._id = id Kmlable._globalid += 1 try: from collections import OrderedDict diff --git a/simplekml/featgeom.py b/simplekml/featgeom.py index b1f375f..908cc99 100644 --- a/simplekml/featgeom.py +++ b/simplekml/featgeom.py @@ -41,6 +41,7 @@ class Feature(Kmlable): def __init__(self, name=None, + id=None, visibility=None, open=None, atomauthor=None, @@ -57,7 +58,7 @@ def __init__(self, region=None, extendeddata=None, gxballoonvisibility=None): - super(Feature, self).__init__() + super(Feature, self).__init__(id=id) self._kml['name'] = name self._kml['visibility'] = visibility self._kml['open'] = open diff --git a/simplekml/schema.py b/simplekml/schema.py index f7c9b34..dfbec25 100644 --- a/simplekml/schema.py +++ b/simplekml/schema.py @@ -159,8 +159,8 @@ class Schema(Kmlable): The arguments are the same as the properties. """ - def __init__(self, name=None): - super(Schema, self).__init__() + def __init__(self, name=None, id=None): + super(Schema, self).__init__(id=id) self._kml['name'] = name self.simplefields = [] self.gxsimplearrayfields = [] diff --git a/simplekml/styleselector.py b/simplekml/styleselector.py index 801516f..8a704ec 100644 --- a/simplekml/styleselector.py +++ b/simplekml/styleselector.py @@ -26,8 +26,8 @@ class StyleSelector(Kmlable): There are no arguments. """ - def __init__(self): - super(StyleSelector, self).__init__() + def __init__(self, id=None): + super(StyleSelector, self).__init__(id=id) @property def id(self): @@ -57,8 +57,9 @@ def __init__(self, linestyle=None, polystyle=None, balloonstyle=None, - liststyle=None): - super(Style, self).__init__() + liststyle=None, + id=None): + super(Style, self).__init__(id=id) self._kml["IconStyle_"] = iconstyle self._kml["LabelStyle_"] = labelstyle self._kml["LineStyle_"] = linestyle @@ -158,8 +159,9 @@ class StyleMap(StyleSelector): """ def __init__(self, normalstyle=None, - highlightstyle=None): - super(StyleMap, self).__init__() + highlightstyle=None, + id=None): + super(StyleMap, self).__init__(id=id) self._pairnormal = None self._pairhighlight = None self.normalstyle = normalstyle diff --git a/simplekml/substyle.py b/simplekml/substyle.py index 40475b5..c511051 100644 --- a/simplekml/substyle.py +++ b/simplekml/substyle.py @@ -30,8 +30,8 @@ class ColorStyle(Kmlable): Not to be used directly. """ - def __init__(self, color=None, colormode=ColorMode.normal): - super(ColorStyle, self).__init__() + def __init__(self, color=None, colormode=ColorMode.normal, id=None): + super(ColorStyle, self).__init__(id=id) self._kml["color"] = color self._kml["colorMode"] = colormode @@ -305,8 +305,9 @@ def __init__(self, bgcolor=None, textcolor=None, text=None, - displaymode=DisplayMode.default): - super(BalloonStyle, self).__init__() + displaymode=DisplayMode.default, + id=None): + super(BalloonStyle, self).__init__(id=id) self._kml["bgColor"] = bgcolor self._kml["textColor"] = textcolor self._kml["text"] = text @@ -373,8 +374,9 @@ class ListStyle(Kmlable): def __init__(self, listitemtype=ListItemType.check, bgcolor=None, - itemicon=None): - super(ListStyle, self).__init__() + itemicon=None, + id=None): + super(ListStyle, self).__init__(id=id) self._kml["listItemType"] = listitemtype self._kml["bgColor"] = bgcolor self._kml["ItemIcon"] = itemicon