-1

我在一个客户的网站上工作,一个地方教会。我使用地图页面上的链接功能嵌入了谷歌地图。地图上的信息窗口包括“评论”,教会对此表示关注。有没有办法从信息窗口中删除它?我不想自己删除任何评论,只是信息窗口上的那个链接?

这可能吗?是否有任何其他自定义选项(除了大小)可以通过查询字符串进行操作?

4

2 回答 2

6

大约 2 年前,我使用 API 和一些代码操作创建了一个完全控制气泡内容的自定义地图。单击上面的链接进行演示。我已经清理了这个答案的代码,但要实现你需要用适当的值替换所有 YOUR__BLANK__HERE 文本。

第 1 步:调用 gMaps API

<script src="http://maps.google.com/maps?file=api&v=2&key=YOUR_API_KEY_HERE"
        type="text/javascript">
</script>

第 2 步:在文档正文中,创建一个 id 为“map”的元素。使用 CSS 调整大小和位置。它需要高度和宽度。

    <div id="map" class="content"></div>

第 3 步:在 DOM 中定义好 div 后,可以安全地插入以下脚本标签:

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

// Check to see if this browser can run the Google API
if (GBrowserIsCompatible()) {

  var gmarkers = [];
  var htmls = [];
  var to_htmls = [];
  var from_htmls = [];
  var i=0;

  // A function to create the marker and set up the event window
  function createMarker(point,name,html) {
    var marker = new GMarker(point);

    // The info window version with the "to here" form open
    to_htmls[i] = html +
       '<br />Start address:<form action="http://maps.google.com/maps" method="get">' +
       '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
       '<INPUT value="Get Directions" TYPE="SUBMIT">' +
       '<input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + 
              // "(" + name + ")" + 
       '"/>';
    // The inactive version of the direction info
    html = html + '<br><a href="javascript:tohere('+i+')">Get Directions<'+'/a>';

    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);
    });
    gmarkers[i] = marker;
    htmls[i] = html;
    i++;
    return marker;
  }

  // functions that open the directions forms
  function tohere(i) {
    gmarkers[i].openInfoWindowHtml(to_htmls[i]);
  }

  // Display the map, with some controls and set the initial location 
  var map = new GMap2(document.getElementById("map"));
  map.setCenter(new GLatLng(
    YOUR_LATITUDE_HERE,
    YOUR_LONGITUDE_HERE
    ), 
    YOUR_ZOOM_LEVEL_HERE // a value of 13 worked for me
  );

  // Set up one marker with an info window 
  var marker = createMarker(
    new GLatLng(
      YOUR_LATITUDE_HERE,
      YOUR_LONGITUDE_HERE
    ),
    'YOUR_MARKER_NAME_HERE',
    '<i>YOUR_HTML_HERE<'+'/i>');

  /* repeat the process to add more markers
  map.addOverlay(marker);
  var marker = createMarker(
    new GLatLng(
      YOUR_LATITUDE_HERE,
      YOUR_LONGITUDE_HERE
    ),
    'YOUR_MARKER_NAME_HERE',
    '<i>YOUR_HTML_HERE<'+'/i>');
  map.addOverlay(marker);*/
}


// display a warning if the browser was not compatible
else {
  alert("Sorry, the Google Maps API is not compatible with this browser");
}

// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team
// http://www.commchurch.freeserve.co.uk/   
// http://www.econym.demon.co.uk/googlemaps/

//]]>
</script>

使用此代码,气泡包含您在 YOUR_HTML_HERE 中指定的 html 以及指向“获取路线”的链接,该链接(单击时)会变成一个要求起始地址的文本框。不幸的是,查询的结果会在新的浏览器窗口中打开(因为在最初发布 API 时不包括方向功能)

于 2009-01-09T23:41:23.713 回答
0

我想我找到了自己问题的答案。信息窗口本身无法修改,但通过链接到地址本身的地图而不是作为商业实体的教堂就可以了。行车路线链接仍然存在,这主要是他们想要的。

于 2009-01-09T21:28:07.023 回答