中心参数无法在新的Google地图嵌入中使用

时间:2014-05-19 15:00:38

标签: google-maps google-maps-embed

我已将新的嵌入代码用于新的Google地图,如下所示:

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>

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

当我尝试使用以下代码添加“center”参数时,它会将地图缩放到整个世界视图

<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>

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

我正确使用&amp; center参数吗?有没有其他人得到&amp; center参数?

我已经检查过我使用的lat和long是否在显示的地图中

3 个答案:

答案 0 :(得分:6)

唉,这似乎是当前Embed API的一个错误。文档表明可以使用&#39; center =&#39;有/但在实践中,这不起作用。

我遇到了同样的问题,添加了&#39; center =&#39;到iframe网址打破了地图。当我改变&#39; / place&#39;进入&#39; /查看&#39;并删除了&#39; q = ...&#39;部分。我已经向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地图手动调整标记的Lat / Lon,右键单击,然后点击这里&#34;这里有什么&#34;。您已经需要为中心坐标执行此操作,因此这不应该是一个大问题。如果您想自动执行此操作,则可以使用Google地图地理编码服务,但这会在每个视图中发生:

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

答案 1 :(得分:2)

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

例如&#34;&amp; ll = 44.013922,-88.342259&#34;。只要确保它在src的引号内。

您还可以使用设置自定义缩放 &安培; Z =#

例如:&#34;&amp; z = 20&#34;会让你靠近街景。

谁知道这会持续多久,所以请自担风险,并务必定期检查......

答案 2 :(得分:0)

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