Как установить центр на карте Google? - PullRequest
0 голосов
/ 08 октября 2009

В Google Maps, когда я устанавливаю центр через

map.setCenter(new GLatLng(28.6589, 77.2104), 13);

Он не только устанавливает центр карты, но и добавляет маркер на то место, которым я не хочу.

Обновление

Я не чувствую никакого вреда, когда делюсь своим кодом, по крайней мере, это может помочь и другим. Вот весь сценарий, который я написал

<script type="text/javascript">
    var map;
    function initialize() {
      if (GBrowserIsCompatible()) {


      map= new GMap2(document.getElementById("map_canvas"));


        map.setCenter(new GLatLng(28.6589, 77.2104), 13);
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
       map.clearOverlays();
        //alert(PlottingMarkersDetails);
      }
      setInterval("plotVehicles()",1000);
    }
    function plotVehicles()
    {

     try
        {
            map.clearOverlays();
            var bounds = new GLatLngBounds();
            if(document.getElementById("<%=hf_SelectedVehiclePlottingDetails.ClientID %>"))
            {
            var PlottingMarkersDetails=document.getElementById("<%=hf_SelectedVehiclePlottingDetails.ClientID %>").value;

            var arrVehicleDetails=PlottingMarkersDetails.split("@");
            alert(arrVehicleDetails.length);
            for(var i=0; i<arrVehicleDetails.length;i++)
            {
                var currentVehicleInfo=arrVehicleDetails[i].split(",");

                var point = new GLatLng(parseFloat(currentVehicleInfo[1]),parseFloat(currentVehicleInfo[2]));
                var marker = createMarker(point,currentVehicleInfo[0] + "<br/>" + currentVehicleInfo[4] + "<br/>" + currentVehicleInfo[3] );
                //bounds.extend(point);
                map.addOverlay(marker);

            }
            //map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));

            }
            }

        catch(err)
        {
        }

    }
    function createMarker(point,html) {
    var blueIcon = new GIcon(G_DEFAULT_ICON);
    blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";    
    markerOptions = { icon:blueIcon };            
        var marker = new GMarker(point,markerOptions);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
    </script>

Ответы [ 4 ]

1 голос
/ 08 октября 2009

Метод setCenter не добавляет маркер.

Вы, вероятно, также вызываете какой-то другой метод, который добавляет маркер; пожалуйста, отправьте весь код.

1 голос
/ 08 октября 2009

Я предлагаю вам отладить ваш код. Я вижу только одно место, где вы звоните map.addOverlay() - добавьте здесь точку останова и посмотрите, вызовите ли вы ее когда-либо, и если да, посмотрите на стек вызовов.

Вставка всего вашего приложения в вопрос stackoverflow, вероятно, не является правильным методом отладки:)

0 голосов
/ 08 октября 2009

Похоже, ваша plotVehicles() функция добавляет маркер. Проверьте данные, из которых извлекается эта функция.

0 голосов
/ 08 октября 2009

Я только что запустил пример кода на Google Playground , и он не добавляет маркер при использовании map.setCenter ()

Я запустил следующее:

function initialize() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(37.4419, -122.1419), 13);
  }
}

UPDATE

При просмотре нового кода, который вы только что добавили, маркер, который вас беспокоит, должен быть добавлен в вашу функцию plotVehicles. Я хотел бы взглянуть на данные об автомобиле, которые вы возвращаете, и посмотреть, есть ли там что-нибудь.

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