是否可以更改Google Maps Drawing管理器图标?

时间:2012-09-18 09:56:56

标签: google-maps-api-3

我正在寻求实施Google地图多边形选择工具,以便在多个设备上使用。

默认的绘图管理器图标(手,多边形绘制工具)在桌面计算机上很好,但它们在Android设备上使用起来非常繁琐。任何人都可以告诉我是否可以覆盖默认图标集(http://maps.gstatic.com/mapfiles/drawing.png)

我想我可以专门覆盖css和html,但是很想知道在走这条路之前是否有更好的方法。

提前致谢。

2 个答案:

答案 0 :(得分:9)

这是我用来修改按钮的,它应该给你一个起点,一旦你ID转换,改变CSS很容易..

$(".gmnoprint").each(function(){
    var newObj = $(this).find("[title='Draw a circle']");
    newObj.parent().addClass("remove");

    // ID the toolbar
    newObj.parent().parent().attr("id", "btnBar");

    // Now remove the Circle button
    $(".remove").remove();

    // ID the Hand button
    newObj = $(this).find("[title='Stop drawing']");
    newObj.attr('id', 'btnStop');

    // ID the Marker button
    newObj = $(this).find("[title='Add a marker']");
    newObj.attr('id', 'btnMarker');

    // ID the line button
    newObj = $(this).find("[title='Draw a line']");
    newObj.attr('id', 'btnLine');

    // ID the Rectangle Button
    newObj = $(this).find("[title='Draw a rectangle']");
    newObj.attr('id', 'btnRectangle');

    // ID the Polygon button
    newObj = $(this).find("[title='Draw a shape']");
    newObj.attr('id', 'btnShape');  

});

为了进一步修改它,我将自己的按钮添加到工具栏中,如下所示:

$("#btnBar").append('<div style="float: left; line-height: 0;"><div id="btnDelete" style="direction: ltr; overflow: hidden; text-align: left; position: relative; color: rgb(51, 51, 51); font-family: Arial,sans-serif; -moz-user-select: none; font-size: 13px; background: none repeat scroll 0% 0% rgb(255, 255, 255); padding: 4px; border-width: 1px 1px 1px 0px; border-style: solid solid solid none; border-color: rgb(113, 123, 135) rgb(113, 123, 135) rgb(113, 123, 135) -moz-use-text-color; -moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-border-left-colors: none; border-image: none; box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); font-weight: normal;" title="Delete Selected"><span style="display: inline-block;"><div style="width: 16px; height: 16px; overflow: hidden; position: relative;"><img style="position: absolute; left: 0px; top: -195px; -moz-user-select: none; border: 0px none; padding: 0px; margin: 0px; width: 16px; height: 350px;" src="drawing.png" draggable="false"></div></span></div></div>');

然后,要激活新按钮并更改鼠标上的图标,请执行以下操作:

google.maps.event.addDomListener(document.getElementById('btnDelete'), 'click', deleteSelectedShape);
            google.maps.event.addDomListener(document.getElementById('btnDelete'), 'mousedown', function () {
    $("#btnDelete img").css("top", "-212px");
});
            google.maps.event.addDomListener(document.getElementById('btnDelete'), 'mouseup', function () {
    $("#btnDelete img").css("top", "-195px");
});

希望这有帮助! :) 丹尼斯

答案 1 :(得分:0)

这是我用来覆盖按钮样式的CSS代码。

就我而言,图标的HTML看起来像这样

<div class="gmnoprint" style="margin: 5px; z-index: 10; position: absolute; top: 0px; left: 310px;">
    <div style="float: left; line-height: 0;">
        <div role="button" tabindex="0" title="Parar de desenhar" aria-label="Parar de desenhar" aria-pressed="true" draggable="false" style="direction: ltr; overflow: hidden; text-align: left; position: relative; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; user-select: none; font-size: 11px; background-color: rgb(255, 255, 255); padding: 4px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; font-weight: 500;">
            <span style="display: inline-block;">
                <div style="width: 16px; height: 16px; overflow: hidden; position: relative;">
                    <img alt="" src="https://maps.gstatic.com/mapfiles/drawing.png" draggable="false" style="position: absolute; left: 0px; top: -144px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 16px; height: 192px;">
                </div>
            </span>
        </div>
    </div>
    <div style="float: left; line-height: 0;">
        <div role="button" tabindex="0" title="Desenhar uma forma" aria-label="Desenhar uma forma" aria-pressed="false" draggable="false" style="direction: ltr; overflow: hidden; text-align: left; position: relative; color: rgb(86, 86, 86); font-family: Roboto, Arial, sans-serif; user-select: none; font-size: 11px; background-color: rgb(255, 255, 255); padding: 4px; background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; border-left: 0px;">
            <span style="display: inline-block;">
                <div style="width: 16px; height: 16px; overflow: hidden; position: relative;">
                    <img alt="" src="https://maps.gstatic.com/mapfiles/drawing.png" draggable="false" style="position: absolute; left: 0px; top: -64px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 16px; height: 192px;">
                </div>
            </span>
        </div>
    </div>
    <div style="float: left; line-height: 0;">
        <div role="button" tabindex="0" title="Desenhar um círculo" aria-label="Desenhar um círculo" aria-pressed="false" draggable="false" style="direction: ltr; overflow: hidden; text-align: left; position: relative; color: rgb(86, 86, 86); font-family: Roboto, Arial, sans-serif; user-select: none; font-size: 11px; background-color: rgb(255, 255, 255); padding: 4px; background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; border-left: 0px;">
            <span style="display: inline-block;">
                <div style="width: 16px; height: 16px; overflow: hidden; position: relative;">
                    <img alt="" src="https://maps.gstatic.com/mapfiles/drawing.png" draggable="false" style="position: absolute; left: 0px; top: -160px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 16px; height: 192px;">
                </div>
            </span>
        </div>
    </div>
    <div style="float: left; line-height: 0;">
        <div role="button" tabindex="0" title="Desenhar um retângulo" aria-label="Desenhar um retângulo" aria-pressed="false" draggable="false" style="direction: ltr; overflow: hidden; text-align: left; position: relative; color: rgb(86, 86, 86); font-family: Roboto, Arial, sans-serif; user-select: none; font-size: 11px; background-color: rgb(255, 255, 255); padding: 4px; border-bottom-right-radius: 2px; border-top-right-radius: 2px; background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; border-left: 0px;">
            <span style="display: inline-block;">
                <div style="width: 16px; height: 16px; overflow: hidden; position: relative;">
                    <img alt="" src="https://maps.gstatic.com/mapfiles/drawing.png" draggable="false" style="position: absolute; left: 0px; top: -16px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 16px; height: 192px;">
                </div>
            </span>
        </div>
    </div>
</div>

已应用CSS样式

.gmnoprint > div > div[role=button] {
    width: 44px;
    height: 44px;
    vertical-align: middle;
    line-height: 40px;
    text-align: center;
}

.gmnoprint > div > div[role=button] > span > div > img {
    display: none;
}

.gmnoprint > div > div[role=button] > span > div:before {
    font: normal normal normal 14px/1 FontAwesome;
    content: "\f007";
    font-size: 22px;
}