Google 地图添加地点卡片
Google Maps add a placecard
是否可以在 Google 地图上添加位置卡,如本示例所示:http://www.haydensinrye.co.uk/Haydens/Find_Us.html?
我在 Google Maps API documentationn 中找不到对此的引用。
我正在使用 this method 嵌入我的地图(在 "Code Examples" 下)。
您链接的网站使用 Google Maps Embed。
无法在 Google 地图 API JS v3 中自动获得相同的内容
对于嵌入,如何使用它的示例是:
<iframe
width="600"
height="450"
frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY
&q=Space+Needle,Seattle+WA" allowfullscreen>
</iframe>
如果您想要示例网站之类的东西,您只需设置信息样式 window 并自动打开它(无需单击标记)。
您可以选择添加方向。像那样。如果您想要保存选项,请在 API 键后添加 signed_in=true。
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&signed_in=true&callback=initMap">
</script>
请注意,signed_in 选项已弃用,在未来的版本中将不再适用。
所有这些都可以在 API 文档中找到(我知道它很大)。
我也找了很久,找到这个例子:
https://codepen.io/jonathanphz/pen/Wxorqj
//HTML
<div class="map-container">
<div class="placeDiv">
<div class="placecard__container">
<div class="placecard__left">
<p class="placecard__business-name">China Bistro Name Goes Here</p>
<p class="placecard__info">9 Avenida Ramón Luis Rivera, Bayamón, 00961, Puerto Rico</p>
<a class="placecard__view-large" target="_blank" href="https://maps.google.com/maps?ll=18.416035,-66.162618&z=18&t=m&hl=en-US&gl=AR&mapclient=embed&cid=2947398168469204860" id="A_41">View larger map</a>
</div> <!-- placecard__left -->
<div class="placecard__right">
<a class="placecard__direction-link" target="_blank" href="https://maps.google.com/maps?ll=18.416035,-66.162618&z=18&t=m&hl=en-US&gl=AR&mapclient=embed&daddr=Roberto%20Perez%20Obregon%20Law%20Office%209%20Avenida%20Ram%C3%B3n%20Luis%20Rivera%20Bayam%C3%B3n%2C%2000961%20Puerto%20Rico@18.4160349,-66.1626177"
id="A_9">
<div class="placecard__direction-icon"></div>
Directions
</a>
</div> <!-- placecard__right -->
</div> <!-- placecard__container -->
</div> <!-- placeDiv -->
</div> <!-- map-container -->
<div id="map-canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" type="text/javascript"></script>
//css
#map-canvas{
height: 500px;
width: 100%;
max-width: 100%;
position: relative;
}
.placeDiv {
z-index: 9999;
position: absolute;
}
.map-container {
position: relative;
}
.placecard {
&__container {
box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px;
max-width: 330px;
width: 100%;
background: rgb(255, 255, 255) none repeat scroll 0% 0% / auto padding-box border-box;
border-radius: 2px 2px 2px 2px;
font: normal normal normal normal 11px / normal Roboto, Arial, sans-serif;
margin: 10px;
padding: 9px 4px 9px 11px;
overflow: hidden;
}
&__left {
float: left;
width: 75%;
}
&__right {
text-align: center;
float: left;
width: 25%;
}
&__business-name {
cursor: default;
height: 19px;
text-overflow: ellipsis;
white-space: nowrap;
width: 200px;
perspective-origin: 100px 9.5px;
transform-origin: 100px 9.5px;
font: normal normal 500 normal 14px / normal Roboto, Arial;
overflow: hidden;
margin: 0;
}
&__info {
color: rgb(91, 91, 91);
cursor: default;
height: 32px;
width: 200px;
column-rule-color: rgb(91, 91, 91);
perspective-origin: 100px 16px;
transform-origin: 100px 16px;
border: 0px none rgb(91, 91, 91);
font: normal normal normal normal 12px / normal Roboto, Arial;
margin: 6px 0px 0px;
outline: rgb(91, 91, 91) none 0px;
}
&__direction-icon {
background: rgba(0, 0, 0, 0) url("https://maps.gstatic.com/mapfiles/embed/images/entity11.png") repeat scroll 0px 0px / 70px 210px padding-box border-box;
height: 22px;
width: 22px;
margin-right: auto;
margin-left: auto;
}
&__direction-link {
color: rgb(58, 132, 223);
display: block;
height: 43px;
text-decoration: none;
width: 54.7344px;
}
&__view-large {
display: block;
margin-top: 10px;
color: rgb(58, 132, 223);
text-decoration: none;
}
}
//js
// if HTML DOM Element that contains the map is found...
if (document.getElementById('map-canvas')) {
// Coordinates to center the map
var myLatlng = new google.maps.LatLng(18.41604, -66.1626177);
// Other options for the map, pretty much selfexplanatory
var mapOptions = {
zoom: 16,
center: myLatlng,
scrollwheel: false,
query: 'Roberto Perez Obregon Law Office',
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Attach a map to the DOM Element, with the defined settings
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Roberto Perez Obregon Law Office",
});
//Resize map
google.map.event.addDomListener(window, 'load', initialize);
google.map.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.map.event.trigger(map, "resize");
map.setCenter(center);
});
}
是否可以在 Google 地图上添加位置卡,如本示例所示:http://www.haydensinrye.co.uk/Haydens/Find_Us.html?
我在 Google Maps API documentationn 中找不到对此的引用。
我正在使用 this method 嵌入我的地图(在 "Code Examples" 下)。
您链接的网站使用 Google Maps Embed。 无法在 Google 地图 API JS v3 中自动获得相同的内容
对于嵌入,如何使用它的示例是:
<iframe
width="600"
height="450"
frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY
&q=Space+Needle,Seattle+WA" allowfullscreen>
</iframe>
如果您想要示例网站之类的东西,您只需设置信息样式 window 并自动打开它(无需单击标记)。 您可以选择添加方向。像那样。如果您想要保存选项,请在 API 键后添加 signed_in=true。
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&signed_in=true&callback=initMap">
</script>
请注意,signed_in 选项已弃用,在未来的版本中将不再适用。 所有这些都可以在 API 文档中找到(我知道它很大)。
我也找了很久,找到这个例子:
https://codepen.io/jonathanphz/pen/Wxorqj
//HTML
<div class="map-container">
<div class="placeDiv">
<div class="placecard__container">
<div class="placecard__left">
<p class="placecard__business-name">China Bistro Name Goes Here</p>
<p class="placecard__info">9 Avenida Ramón Luis Rivera, Bayamón, 00961, Puerto Rico</p>
<a class="placecard__view-large" target="_blank" href="https://maps.google.com/maps?ll=18.416035,-66.162618&z=18&t=m&hl=en-US&gl=AR&mapclient=embed&cid=2947398168469204860" id="A_41">View larger map</a>
</div> <!-- placecard__left -->
<div class="placecard__right">
<a class="placecard__direction-link" target="_blank" href="https://maps.google.com/maps?ll=18.416035,-66.162618&z=18&t=m&hl=en-US&gl=AR&mapclient=embed&daddr=Roberto%20Perez%20Obregon%20Law%20Office%209%20Avenida%20Ram%C3%B3n%20Luis%20Rivera%20Bayam%C3%B3n%2C%2000961%20Puerto%20Rico@18.4160349,-66.1626177"
id="A_9">
<div class="placecard__direction-icon"></div>
Directions
</a>
</div> <!-- placecard__right -->
</div> <!-- placecard__container -->
</div> <!-- placeDiv -->
</div> <!-- map-container -->
<div id="map-canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" type="text/javascript"></script>
//css
#map-canvas{
height: 500px;
width: 100%;
max-width: 100%;
position: relative;
}
.placeDiv {
z-index: 9999;
position: absolute;
}
.map-container {
position: relative;
}
.placecard {
&__container {
box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px;
max-width: 330px;
width: 100%;
background: rgb(255, 255, 255) none repeat scroll 0% 0% / auto padding-box border-box;
border-radius: 2px 2px 2px 2px;
font: normal normal normal normal 11px / normal Roboto, Arial, sans-serif;
margin: 10px;
padding: 9px 4px 9px 11px;
overflow: hidden;
}
&__left {
float: left;
width: 75%;
}
&__right {
text-align: center;
float: left;
width: 25%;
}
&__business-name {
cursor: default;
height: 19px;
text-overflow: ellipsis;
white-space: nowrap;
width: 200px;
perspective-origin: 100px 9.5px;
transform-origin: 100px 9.5px;
font: normal normal 500 normal 14px / normal Roboto, Arial;
overflow: hidden;
margin: 0;
}
&__info {
color: rgb(91, 91, 91);
cursor: default;
height: 32px;
width: 200px;
column-rule-color: rgb(91, 91, 91);
perspective-origin: 100px 16px;
transform-origin: 100px 16px;
border: 0px none rgb(91, 91, 91);
font: normal normal normal normal 12px / normal Roboto, Arial;
margin: 6px 0px 0px;
outline: rgb(91, 91, 91) none 0px;
}
&__direction-icon {
background: rgba(0, 0, 0, 0) url("https://maps.gstatic.com/mapfiles/embed/images/entity11.png") repeat scroll 0px 0px / 70px 210px padding-box border-box;
height: 22px;
width: 22px;
margin-right: auto;
margin-left: auto;
}
&__direction-link {
color: rgb(58, 132, 223);
display: block;
height: 43px;
text-decoration: none;
width: 54.7344px;
}
&__view-large {
display: block;
margin-top: 10px;
color: rgb(58, 132, 223);
text-decoration: none;
}
}
//js
// if HTML DOM Element that contains the map is found...
if (document.getElementById('map-canvas')) {
// Coordinates to center the map
var myLatlng = new google.maps.LatLng(18.41604, -66.1626177);
// Other options for the map, pretty much selfexplanatory
var mapOptions = {
zoom: 16,
center: myLatlng,
scrollwheel: false,
query: 'Roberto Perez Obregon Law Office',
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Attach a map to the DOM Element, with the defined settings
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Roberto Perez Obregon Law Office",
});
//Resize map
google.map.event.addDomListener(window, 'load', initialize);
google.map.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.map.event.trigger(map, "resize");
map.setCenter(center);
});
}