谷歌地图标记自定义图像上带有动态字母

时间:2015-07-09 07:59:56

标签: javascript google-maps google-maps-api-3 google-maps-markers

我有一个显示自定义图像的现有功能。这是它的示例代码。

var markerImageUrl = gmap_set_icons(email, 30);
var icon = {
    url: markerImageUrl, // url
    size: new google.maps.Size(40, 40),
    origin: new google.maps.Point(0, 0),
    scaledSize: new google.maps.Size(30, 30),
    anchor: new google.maps.Point(0, 32)

};

marker[i] = new google.maps.Marker({
    position: myLatlng[i],
    map: map,
    icon: icon
});

gmap_set_icons是该函数返回给定电子邮件的URL,但是可能没有关联电子邮件的图像,在这种情况下,我想通过使用电子邮件中的第一个字母返回动态创建的图像并将其用作一个标记。请让我知道最好的方法。

function gmap_set_icons(email,width){
var img = DEFAULT_GRAVATAR_url;
var default_image="https://secure.gravatar.com/avatar/83e524be3136955aeeb4272bd5a3adff.jpg?s=10&d=https://dpm72z3r2fvl4.cloudfront.net/css/images/user-default.png";

    if (email != undefined || email != "")
        return default_image;
    return 'https://secure.gravatar.com/avatar/' + Agile_MD5("email") + '.jpg?s=' + width + "&d=" + escape(img);

}

由于

1 个答案:

答案 0 :(得分:1)

您可以使用this site获取带有字母的标记,例如 http://googlemapsmarkers.com/v1/A/ff0000/ 给出一个带字母A的红色标记。

或者您可以直接从Google获取它们: http://maps.google.com/mapfiles/markerA.png 给出

enter image description here

在您的函数中,您希望获取电子邮件地址的第一个字母,并将其转换为大写的大写字母。

firstLetter = email.charAt(0).toUpperCase();

然后您的图片网址就像

'http://maps.google.com/mapfiles/marker' + firstLetter + '.png';

我不确定的一件事是如何判断您的电子邮件地址是否有Gravatar图片。