【问题标题】:How to set the center on a Google Map?如何在谷歌地图上设置中心?
【发布时间】:2010-12-05 01:44:36
【问题描述】:

当我通过谷歌地图设置中心时

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>

【问题讨论】:

  • 就像约瑟夫在下面指出的那样, setCenter() 不添加任何标记。问题出在代码的其他地方。如果您可以发布链接或更多代码,我们可以看到真正的问题在哪里。
  • 另外,格式化/缩进/等你的代码。您发布的内容几乎无法阅读。
  • 对不起,我不知道如何格式化,我只是复制并粘贴在我的 IDE 中正确格式化的代码
  • 要格式化代码,请单击编辑器工具栏上的代码按钮。

标签: asp.net javascript google-maps


【解决方案1】:

setCenter 方法不添加标记。

您可能还调用了添加标记的其他方法;请发布所有代码。

【讨论】:

    【解决方案2】:

    我建议你调试你的代码。我只看到你正在调用 map.addOverlay() 的一个地方 - 在此处添加断点,看看你是否调用过它,如果是,请查看调用堆栈。

    将整个应用程序粘贴到 stackoverflow 问题中可能不是正确的调试技术 :)

    【讨论】:

      【解决方案3】:

      看起来您的 plotVehicles() 函数正在添加标记。检查该函数从中提取的数据。

      【讨论】:

        【解决方案4】:

        我刚刚在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);
          }
        }
        

        更新

        通过查看您刚刚发布的新代码,您所关心的标记必须添加到您的 plotVehicles 功能中。我会看看你带回来的车辆数据,看看有没有什么东西。

        【讨论】:

        • var 映射;函数初始化() { if (GBrowserIsCompatible()) { map= new GMap2(document.getElementById("map_canvas")); map.setCenter(新 GLatLng(28.6589, 77.2104), 13); map.addControl(新 GLargeMapControl()); map.addControl(new GMapTypeControl()); map.clearOverlays(); } } 这就是我正在使用的只是用这段代码试试吧
        • 只是添加了 clearoverlays 以清除该标记,但对我不起作用
        • @Ankur 您在此处发布的代码也可以正常工作...一定还有其他内容您不包括在内。
        • 我刚刚编辑并放了整个脚本,请看一下
        猜你喜欢
        • 2016-01-16
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        • 2017-11-23
        相关资源
        最近更新 更多