是否可以在Google地图中嵌入侧边栏?

时间:2009-06-26 18:24:34

标签: google-maps

我们希望使用Google地图跟踪本地车库的销售情况。我们已经创建了一张地图(see here),我们想在我们的网站上嵌入该地图。但是,当我们这样做时,我们会丢失地图的侧边栏,其中包含所有车库销售清单。

我们非常熟悉如何嵌入Google;他们使这个过程变得非常简单。但是,有没有办法可以嵌入地图并保留车库销售的侧栏列表?

6 个答案:

答案 0 :(得分:4)

据我所知,最好的方法是创建自己的销售容器并将它们链接到您正在填充的地图。我假设您正在Google网站上构建和输入数据,并使用嵌入功能,这意味着我的答案要多得多。

您需要拥有自己的数据源,并使用Maps API创建地图和侧边栏。

你的woudl不再使用iFrame,你将编写自己的解决方案。如果你以前做过JavaScript,那真的很容易,如果你还没有一些很好的例子。

答案 1 :(得分:2)

本教程http://econym.org.uk/gmap/basic2.htm详细说明了如何操作并提供代码(我通过作者的许可再现:社区教会Javascript团队http://www.bisphamchurch.org.uk

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Google Maps</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAPDUET0Qt7p2VcSk6JNU1sBSM5jMcmVqUpI7aqV44cW1cEECiThQYkcZUPRJn9vy_TWxWvuLoOfSFBw" type="text/javascript"></script>
  </head>
  <body onunload="GUnload()">


    <!-- you can use tables or divs for the overall layout -->

    <table border=1>
      <tr>
        <td>
           <div id="map" style="width: 550px; height: 450px"></div>
        </td>
        <td width = 150 valign="top" style="text-decoration: underline; color: #4444ff;">
           <div id="side_bar"></div>
        </td>
      </tr>

    </table>
    <a href="basic2.htm">Back to the tutorial page</a>


    <noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b> 
      However, it seems JavaScript is either disabled or not supported by your browser. 
      To view Google Maps, enable JavaScript by changing your browser options, and then 
      try again.
    </noscript>


    <script type="text/javascript">
    //<![CDATA[

    if (GBrowserIsCompatible()) {

      // this variable will collect the html which will eventually be placed in the side_bar
      var side_bar_html = "";

      // arrays to hold copies of the markers and html used by the side_bar
      // because the function closure trick doesnt work there
      var gmarkers = [];


      // A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers.push(marker);
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><br>';
         return marker;
      }


      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        GEvent.trigger(gmarkers[i], "click");
      }


      // create the map
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng( 43.907787,-79.359741), 8);

      // add the points    
      var point = new GLatLng(43.65654,-79.90138);
      var marker = createMarker(point,"This place","Some stuff to display in the<br>First Info Window")
      map.addOverlay(marker);

      var point = new GLatLng(43.91892,-78.89231);
      var marker = createMarker(point,"That place","Some stuff to display in the<br>Second Info Window")
      map.addOverlay(marker);

      var point = new GLatLng(43.82589,-78.89231);
      var marker = createMarker(point,"The other place","Some stuff to display in the<br>Third Info Window")
      map.addOverlay(marker);


      // put the assembled side_bar_html contents into the side_bar div
      document.getElementById("side_bar").innerHTML = side_bar_html;

    }

    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }

    // This Javascript is based on code provided by the
    // Community Church Javascript Team
    // http://www.bisphamchurch.org.uk/   
    // http://econym.org.uk/gmap/

    //]]>
    </script>
  </body>

</html>

答案 2 :(得分:1)

我很高兴使用Javascript访问Google Maps API v3,并且我已经成功地使用了许多不同的示例脚本进行了实验,但我得出的结论是,生成嵌入式代码的最佳(也是最快)方法地图 - 带侧边栏和许多其他选项 - 是去http://www.mymapsplus.com/AddMyMap(感谢Chris B),并捐出10英镑捐款以摆脱生成的地图中的广告 - 参见eg http://www.hope-projects.org.uk/node/41。他们的“编辑”页面允许您通过几次单击添加或更改几乎任何您能想到的选项。

答案 3 :(得分:0)

您想要做的事情需要使用MAPS API,但如果您了解一些javascript则不是很难。本质上,将数据点加载到Javascript数组中,在地图上绘制它们,然后使用数组信息填充html。

此链接是我最近编写的一个页面,它执行上述操作,并且当用户拖动地图时,也会动态地从数据库重新填充数组(目前几乎没有任何CSS)。

map with dynamic links

很高兴回答任何更多评论。

P.S。酷地图图标!

答案 4 :(得分:0)

我发现一个网站会生成带有侧边栏的地图,但如果您想要更多控制权,则需要像其他人建议的那样创建自己的地图。

http://www.mymapsplus.com/AddMyMap

http://www.mapchannels.com/

答案 5 :(得分:0)

另一个使用侧边栏生成地图的网站是mapalist.com