Right. I thought you meant a property of your own.
Why not store it in the Marker after construction, like this?
var url = getUrlForMarker(); // i assume you have some sort of url that
changes...
var marker = new google.maps.Marker({
icon: url
});
marker.iconUrl_ = url;
then you can access the 'iconUrl_' property wherever you want.
Alternatively (and probably better), store it as a MVC property with set and
get...
marker.set('iconUrl', url);
then you can marker.get('iconUrl') later.
Chris
On Wed, Dec 1, 2010 at 7:12 PM, JoshN <[email protected]> wrote:
> **Notice, I had a typo in my last message and wound up removing it to
> avoid leaving a bad snippet up.**
>
> My earliest solution of using the private property broke with the most
> recent update to the API. Mainly, I was hoping that since url is a
> keyword arg for MarkerImage that there would be a getter (or a public
> property) for MarkerImage.url--I'm using markers in bounds to show a
> list of icons and titles.
>
> I'm probably just splitting hairs on performance, but I feel odd using
> a RegExp for this sort of problem.
>
> In case someone else needs to get this property, here is the solution
> I settled on:
>
> google.maps.MarkerImage.prototype.getUrl = function(){
> var re = /\.png|\.jpg|\.gif/;
> for(var p in this){
> if(re.test(this[p])){
> return this[p];
> }
> }
> return
> }
>
> Thanks for your attention.
>
> On Nov 30, 11:22 pm, Chris Broadfoot <[email protected]> wrote:
> > No, there isn't.
> >
> > What was wrong with your approach of using a private property?
> >
> >
> >
> >
> >
> >
> >
> > On Wed, Dec 1, 2010 at 1:38 PM, JoshN <[email protected]> wrote:
> > > I was trying to figure out how to find the url of a markers icon. I had
> > > been using a private property before, but realized my error and now I'm
> > > curious if there is an accessor I should be using. In the meantime, I
> have
> > > been using this, which relies on prototypejs:
> >
> > > google.maps.Marker.prototype.getIconUrl = function(){
> > > var strs = $H(this.getIcon()).find(String);
> > > re = /\.png|\.gif|\.jpg/;
> > > for(var i=0;i<strs.length;i++){
> > > if(re.match(strs[i])){
> > > return strs[i];
> > > }
> > > }
> > > }
> >
> > > I'm sure there is a much better implementation, but I'm hoping this is
> a
> > > temp solution.
> >
> > > Any help is appreciated.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google Maps JavaScript API v3" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-maps-js-api-v3%[email protected]><google-maps-js-api-v3%2B
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-js-api-v3%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-js-api-v3?hl=en.