Ticket #9204: gicon1.patch

File gicon1.patch, 2.6 KB (added by QingFeng, 11 years ago)

GIcon v1.0

  • __init__.py

     
    5757      version.
    5858"""
    5959from django.contrib.gis.maps.google.gmap import GoogleMap
    60 from django.contrib.gis.maps.google.overlays import GEvent, GMarker, GPolygon, GPolyline
     60from django.contrib.gis.maps.google.overlays import GEvent, GMarker, GPolygon, GPolyline, GIcon
    6161from django.contrib.gis.maps.google.zoom import GoogleZoom
  • overlays.py

     
    165165    def js_params(self):
    166166        return '%s, "%s", %s, %s' % (self.latlngs, self.color, self.weight, self.opacity)
    167167
     168class GIcon(object):
     169    """
     170    A Python wrapper for the Google GIcon object.  For more information
     171    please see the Google Maps API Reference:
     172     http://code.google.com/apis/maps/documentation/reference.html#GIcon
     173
     174    >>> GIcon("http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png")
     175    <django.contrib.gis.maps.google.overlays.GIcon object at 0x132c6d0>
     176    >>> "%s"%GIcon("http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png")
     177    'icon: eval("icon=new GIcon(G_DEFAULT_ICON);icon.image=\'http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png\';icon")'
     178    """
     179    def __init__(self, icon=None):
     180        self.icon = icon
     181
     182    def __str__(self):
     183        js = ""
     184        if self.icon: js='''icon: eval("icon=new GIcon(G_DEFAULT_ICON);icon.image='%s';icon")''' % self.icon
     185        return js
     186
     187
    168188class GMarker(GOverlayBase):
    169189    """
    170190    A Python wrapper for the Google GMarker object.  For more information
     
    184204          return render_to_response('mytemplate.html',
    185205                 {'google' : GoogleMap(markers=[marker])})
    186206    """
    187     def __init__(self, geom, title=None):
     207    def __init__(self, geom, title=None, icon=None):
    188208        """
    189209        The GMarker object may initialize on GEOS Points or a parameter
    190210        that may be instantiated into a GEOS point.  Keyword options map to
     
    205225        self.envelope = geom.envelope
    206226        # TODO: Add support for more GMarkerOptions
    207227        self.title = title
     228        self.icon = icon
    208229        super(GMarker, self).__init__()
    209230
    210231    def latlng_from_coords(self, coords):
     
    213234    def options(self):
    214235        result = []
    215236        if self.title: result.append('title: "%s"' % self.title)
     237        if self.icon: result.append("%s"%self.icon)
    216238        return '{%s}' % ','.join(result)
    217239
    218240    @property
Back to Top