如何从新的Google地图嵌入中删除框?

时间:2014-03-21 09:17:04

标签: google-maps

谷歌似乎改变了他们的iFrame的工作方式。现在左上方有一个信息框,试图显示地名。问题是,在爱尔兰,通常不可能使用商业名称来确定地图,而且通常你需要使用街道名称等等,这使得这个箱子功能无用,因为街道的名称就在那里地图,以及地图旁边的页面!

我怎样才能摆脱这件事?在这个例子中,该业务与爱尔兰教练位于同一建筑物内。地图坚持认为,通过在地址中加入,这位律师出于某种原因希望告知潜在客户爱尔兰教练的位置!

enter image description here

我已经尝试了iwloc但它没有做任何事情,我无法通过CSS和jQuery实现它,因为它在另一个域上!

有什么想法吗?

11 个答案:

答案 0 :(得分:24)

已停止解决 2017年2月。他们必须更新自己的API。 :(

请在2014年1月22日之前使用ZETA'

你就是这样做的!

工作版

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2381.7399040776495!2d-6.261147484122739!3d53.34791197997939!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!3m2!1sen!2sus!4v1462581622087" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

我注意到另一个网站的嵌入模式只有#34;查看更大的地图&#34;文字,没有额外的东西。只需删除几个字符。

完全嵌入

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2381.7399040776495!2d-6.261147484122739!3d53.34791197997939!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48670e84fbdd6bd3%3A0x998692b4f1b691e1!2sUlster+Bank+Chambers%2C+O&#39;Connell+Street+Lower%2C+Dublin+1%2C+Ireland!5e0!3m2!1sen!2sus!4v1462581622087" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

这是已删除的部分

1m2!1s0x48670e84fbdd6bd3%3A0x998692b4f1b691e1!2sUlster+Bank+Chambers%2C+O&#39;Connell+Street+Lower%2C+Dublin+1%2C+Ireland!5e0!

我也尝试过其他地址。

答案 1 :(得分:19)

从1822年1月22日起使用坐标而不是商家名称时,它可以正常工作

  1. 转到Maps Ie以获取您的坐标
  2. 转到Google Maps并输入这些坐标(逗号分隔如下:33.319663,-111.89780100000002)
  3. 点击分享(位于左侧)
  4. 点击嵌入地图
  5. 配置您想要的地图尺寸
  6. 复制html
  7. 产生的html是这样的:

    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3333.967410377096!2d-111.89998968453055!3d33.31966746342457!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2zMzPCsDE5JzEwLjgiTiAxMTHCsDUzJzUyLjEiVw!5e0!3m2!1sen!2sus!4v1516690469899" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

    Size configuration screen

答案 2 :(得分:2)

进一步挖掘后,您要做的是删除谷歌地图的地方卡之前回答过类似的问题: Google Maps Embed - Remove Place Card

答案 3 :(得分:2)

在这里有两个答案,一个摆脱了信息框,一个可能回答了在信息框中的正确位置。希望他们中的一个能帮上忙。


删除信息框

注意:这里的方法可能被认为是“黑客”,如果Google更改了其底层嵌入功能,则可能会更改。

我最终在这里寻找类似的答案,根据其他人的发言,我提出了这个答案。答案与其他答案相似,但希望能解释一些有关嵌入网址以及如何使用经纬度,经度和缩放(可以从CMS中的位置插件获得的东西)生成嵌入网址的信息。

使用这篇文章作为搜索的基础,我发现了几个不同的文章,概述了embed参数的细目分类,这些内容本身很有趣: Decoding the Google Maps embedded parameters,导致了http://blog.themillhousegroup.com/2016/08/deep-diving-into-google-pb-embedded-map.html

我从这些文章中提取的内容(此处不再赘述)是“ pb”参数的细分。 “ pb”是专有(?)格式,“ m”是矩阵引用。这里显示的是从Google Maps嵌入共享生成的嵌入代码的示例。

<iframe src="https://www.google.com/maps/embed?pb=
    !1m18
        !1m12
            !1m3
                !1d2256.8774176856136
                !2d145.01353351606252
                !3d-37.79291244062522
            !2m3
                !1f0
                !2f0
                !3f0
            !3m2
                !1i1024
                !2i768
                !4f13.1
        !3m3
            !1m2
                !1s0x0%3A0x0
                !2zLTM3Ljc5MjkxNjcgMTQ1LjAxNTcyMjI
    !5e0
    !3m2
        !1sen
        !2suk
    !4v1532346966021
" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

通过玩耍,我发现整个“ pb”参数可以简化为

<iframe src="https://www.google.com/maps/embed?pb=
    !1m7
        !1m2
            !1m1
                !1d2256.8774176856136
        !3m3
            !1m2
                !1s0
                !2zLTM3Ljc5MjkxNjcgMTQ1LjAxNTcyMjI
" width="450" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

注意:“ m”后的数字减少,表示“矩阵”中的项目较少

以上嵌入内容用于 lat = -37.7929167 长= 145.0157222 zoom = 17

正如另一个答案所暗示的那样,似乎如果仅使用纬度和经度(使用此嵌入api,而不使用嵌入位置api),则不会出现信息框,但是我需要知道如何获取嵌入网址,而无需先通过Google来从共享中生成网址。

在“ pb”细分中,需要注意几个部分

  • 地图比例尺 1d2256.8774176856136
  • 坐标 2zLTM3Ljc5MjkxNjcgMTQ1LjAxNTcyMjI

比例可以从我在https://gis.stackexchange.com/questions/7430/what-ratio-scales-do-google-maps-zoom-levels-correspond-tohttps://www.esri.com/arcgis-blog/products/product/mapping/how-can-you-tell-what-map-scales-are-shown-for-online-maps/这里找到的算法中得到。

但是我发现我所期望的数字不太正确,所以我把变焦级别弄乱了

var mapScale = 591657550.5 / Math.pow( 2, zoom + 1);
// The results of this goes after the "1d" part in the map scale

对于坐标,请在经纬度上使用base64(显示的示例是针对javascript的)来获取结果字符串。我已经使用十进制度和度分秒格式来工作了。

var base64 = btoa([lat,long]); // lazy "lat,long" formatting
// the result of this goes after the "2z" part in the coordinate

如果要编写脚本,这是一个使用javascript生成iframe的简单示例,但是您可能希望创建整个src服务器端。请注意:这与javascript解决方案无关,这是脚本解决方案的示例。

    // create the iframe and with the required properties.
    var iframe = document.createElement("iframe");
    iframe.width = 450;
    iframe.height = 450;
    iframe.frameborder = 0;
    iframe.style.border = 0;
    iframe.setAttribute('allowFullScreen', '')
    document.body.appendChild(iframe)
    
    // sample lat and long.
    var lat = -37.7929167;
    var long = 145.0157222;
    var zoom = 17;
    
    // get the scale
    var mapScale = 591657550.500000 / Math.pow( 2, zoom+1);
    // get the base64 representation
    var base64 = btoa([lat,long]); // lazy "long,lat" formatting
    // set the source of the iframe
    iframe.src = 'https://www.google.com/maps/embed?key=asdfsdfsf&pb=!1m7!1m2!1m1!1d' + mapScale + '!3m3!1m2!1s0!2z' + base64;

我在Codepen上创建了一个示例,其中显示了原始嵌入,缩小的嵌入,没有比例的嵌入以及脚本化的解决方案。 https://codepen.io/mcgern/pen/zLZJmQ


在信息框中更正地名

您可能已经尝试过此方法,但是如果您要投放的业务具有Google地点ID,则可以使用https://developers.google.com/places/place-id找到它。取得地点编号后,您就可以在地点嵌入网址中使用它

<iframe width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?q=place_id:ChIJ02vd- 
4QOZ0gR4ZG28bSShpk&key=<INSERT_API_KEY>" allowfullscreen></iframe>

(我刚刚发现一个随机的地方,看起来像是与爱尔兰教练同在的建筑物)

答案 4 :(得分:2)

Update_2020:

1。在Google地图中找到您的位置

2。右键单击目标,然后选择What's here?

3。在屏幕下方,您可以看到这样的坐标:29.586525, 52.546173

4。现在将坐标粘贴到搜索框中

5。单击share按钮并选择Embed a map并复制iframe标签

答案 5 :(得分:1)

2017年中期,您可以使用内置的Google API控制标记disableDefaultUI

像这样使用它:

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: {lat: -33, lng: 151},
    disableDefaultUI: true
  });
}

参考:https://developers.google.com/maps/documentation/javascript/controls#DisablingDefaults

<iframe src="https://google-developers.appspot.com/maps/documentation/javascript/examples/full/control-disableUI" width="100%" height="300" frameborder="0"></iframe>

答案 6 :(得分:1)

只需将此代码放在css(stye.css)上:

.place-card .place-card-large{
    display: none !important;
}

此评论框将被删除。最好在地图容器中使用一个类,例如

.my-map .place-card .place-card-large{
    display: none !important;
}

完成!

答案 7 :(得分:0)

只需输入目的地,例如规定要走的路,它就会移除替代品,这样你仍然可以嵌入iframe

答案 8 :(得分:-1)

只需从嵌入代码中删除一些字符,然后就可以了。

正常嵌入:

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3929.040079626225!2d76.32828391488012!3d10.013548175548115!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3b080cf735671585%3A0x515419464975212e!2sCoredes+-+UX+Studio!5e0!3m2!1sen!2sin!4v1536297325864" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

您只需要删除1m2!1sen!之间的字符

修改后的代码:

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3929.040079626225!2d76.32828391488012!3d10.013548175548115!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1sen!2sin!4v1536297325864" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

我在不同国家/地区尝试了十多个地方,并为我做得很好。

答案 9 :(得分:-3)

不完全符合您的要求,但如果您的律师地址显示在谷歌地图上,那么为什么不只是将搜索嵌入到地址中。

<iframe 
width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/search?q=1873 Bachelors Walk, Dublin,
Ireland
&key=AIzaSyDsQc1PNQhYYVbGn9R4_vWY3SOlEKOM7JU">
</iframe>

http://jsfiddle.net/zE8tE/2/

答案 10 :(得分:-9)

我的简单解决方案:将Firefox与两者一起使用&#34; AdblockPlus &#34;和&#34; AdblockPlus元素隐藏助手&#34; addins 识别该框并删除它非常容易。在Google重命名隐藏元素(或删除您创建的元素隐藏规则)之前,它永远不会返回。这种方法也适用于从我们喜欢的任何网站中删除几乎所有元素 - 我大量使用它来删除我经常访问的许多页面中的各种元素。需要一些练习来获得使用这种技术的感觉 - 但它工作得很漂亮。而且, Ghostery Adblock Plus 的组合是来自天堂的礼物。