7

我已经为新的谷歌地图使用了新的嵌入代码,如下所述:

https://developers.google.com/maps/documentation/embed/guide

我的代码是:

<iframe width="500"
  height="450"
  frameborder="0" style="border:0"
  src="https://www.google.com/maps/embed/v1/place?key=KEY&q=Space+Needle,Seattle+WA">
</iframe>

这工作正常并正确显示地图

当我尝试使用下面的代码添加“中心”参数时,它会将地图缩小到整个世界视图

<iframe width="500"
  height="450"
  frameborder="0" style="border:0"
  src="https://www.google.com/maps/embed/v1/place?key=KEY&q=Space+Needle,Seattle+WA&center=47.620467,-122.349116">
</iframe>

我最终想要做的是移动地图,使其不以实际标记为中心,但目前我正在使用非常接近标记的纬度和经度进行测试。

我是否正确使用了 ¢er 参数?有没有其他人让 ¢er 参数工作?

我检查了我使用的纬度和经度是否在显示的地图中

4

3 回答 3

6

唉,这似乎是当前 Embed API 的一个错误。文档表明可以将 'center=' 与 /place 一起使用,但实际上这不起作用。

我遇到了同样的问题,在 iframe URL 中添加 'center=' 会破坏地图。当我将 '/place' 更改为 '/view' 并删除 'q=...' 部分时,它完美地工作。我已就此向 Google 发送了反馈。您可以通过此页面上的“对此文档的反馈”链接执行此操作:

https://developers.google.com/maps/documentation/embed/guide#optional_parameters

为了解决这个问题,我切换到了 Google Maps Javascript API v3。这个 API 更加灵活,而且它还让你摆脱了 iframe。

在您的情况下,这应该可以解决问题:

把这个放在前面

<script type="text/javascript">
var map;
function initialize() {
  var mapOptions = {
    zoom: 13,
    center: new google.maps.LatLng(47.620467,-122.349116),
  };

  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var myLatlng = new google.maps.LatLng(47.620614, -122.348880);

  var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    title: 'Space Needle, Seattle WA'
  });
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?key={API_KEY}&callback=initialize';
  document.body.appendChild(script);
}

window.onload = loadScript;

</script>

并添加

<div id="map-canvas" style="width: 500px; height: 450px;"></div>

到您的 HTML 某处。

缺点是您需要通过搜索谷歌地图手动调整标记的纬度/经度,右键单击然后“这里有什么”。您已经需要为中心坐标执行此操作,因此这应该不是大问题。如果您想自动执行此操作,您可以使用 Google Maps Geocoding 服务,但这会在每个视图中发生:

https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

于 2014-08-11T09:03:46.320 回答
5

如果您想在不使用 API 的情况下执行此操作,您仍然可以使用旧的 Google Maps Classic 编码。对于居中,您可以将以下内容添加到“src”代码中:&ll={latitude}, {longitude}

例如“&ll=44.013922,-88.342259”。只要确保它在 src 的引号内。

您还可以使用 &z=# 设置自定义缩放

例如:“&z=20”将使您更接近街景。

谁知道这会持续多久,所以使用风险自负,并确保定期检查...

于 2014-10-20T21:02:37.853 回答
0

另一种使用 Google MyMap Web GUI 的解决方法对我有用。转到创建/编辑地图页面,使用鼠标或光标拖动地图,使其在通过嵌入式链接打开时居中,然后单击“设置默认视图”(可以在其中新建/打开/保存地图的相同对话框成立)。

于 2016-04-28T09:49:04.277 回答