Google Maps API V3 - пользовательские маркеры .GIF, не отображаемые в IE при изменении размера - PullRequest
0 голосов
/ 28 ноября 2011

Я пытался выяснить это в течение некоторого времени и не могу заставить его работать или найти решение на доске объявлений.

Я пытаюсь использовать собственный маркер на карте Googleиспользуя API V3.Это должен быть файл .gif, а не .png, поскольку IE, похоже, не поддерживает альфа-канал в .png.Он также должен быть уменьшен в размере, поскольку это довольно сложное изображение с текстом, который я использую, и когда вы изменяете размер изображения в фотошопе / рисуете, все детали теряются и становятся очень пикселизированными.Я обнаружил, что единственным способом обойти это, кажется, является масштабирование его в файле .html.

Мое текущее html-решение работает в FF, Chrome, Safari & Opera, но не в IE (я недаже получить карту просто пустой белый экран).

Любая помощь будет принята с благодарностью, так как я, кажется, ничего не получаю при поиске в Интернете.Мой HTML-файл напечатан ниже ....

Спасибо

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Map</title>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">


        function initialize() {
            var latLng = new google.maps.LatLng(51.500656, -0.124594);


            var map = new google.maps.Map(document.getElementById('map_canvas'), {
                zoom: 14,
                center: latLng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });




            var marker = new google.maps.Marker({
                position: latLng,
                draggable: true,
                map: map,
                icon: new google.maps.MarkerImage("http://www.activityvillage.co.uk/images/Big_Ben.gif", null, null, new google.maps.Point(66, 200), new google.maps.Size(136, 200)),
            });


            var label = new Label({
                map: map
            });


            label.bindTo('position', marker, 'position');
            label.bindTo('text', marker, 'position');
        };

    </script>
</head>
    <body onload="initialize()">

        <div id="map_canvas" style="height: 100%; width: 100%"></div>

    </body>
</html>​

1 Ответ

1 голос
/ 30 марта 2012

Попробуйте удалить последнюю запятую в структуре маркера:

var marker = new google.maps.Marker({
    position: latLng,
    draggable: true,
    map: map,
    icon: new google.maps.MarkerImage(
        "http://www.activityvillage.co.uk/images/Big_Ben.gif", 
        null, 
        null, 
        new google.maps.Point(66, 200), 
        new google.maps.Size(136, 200)
    )
});​

Моя карта вообще не отображалась из-за аналогичной ошибки. Цитировать Zepher Dev:

"Есть много возможных ошибок в Javascript, которые могли бы объяснить отсутствующую карту Google. Однако моя проблема была с запятыми. IE7 (и иногда IE8) не любит запятые, потому что он ожидает идентификатор - отсюда и предупреждение: «Ожидаемый идентификатор».

Надеюсь, это работает для тебя!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...