我从谷歌的例子中大量借用了一些代码。我使用的只是此代码的Google商家信息结果部分,因此我想删除map
部分。因此,当我这样做时,它会引发Cannot read property 'innerHTML' of undefined
错误,因为我猜测var service
函数需要它。
删除此区域代码的任何帮助?
var map;
var infowindow;
// Create Google Map with location at center
function initMap(latitude, longitude) {
var location = {lat: latitude, lng: longitude};
console.log(location);
// REMOVE THIS SECTION
map = new google.maps.Map(document.getElementById('map'), {
center: location,
zoom: 15
});
// ^^ REMOVE THIS SECTION
var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
location: location,
radius: 3200,
types: ['school']
}, callback);
}
// List nearby places
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
listPlaces(results[i]);
}
}
}
答案 0 :(得分:0)
好吧,它被称为“Googgle 地图 API”,原因如下: - )
此外,您可以隐藏地图,但服务条款包括在网页上某处显示“由Google提供支持”徽标的要求。
答案 1 :(得分:0)
你可以使用
<div id="map" style='display:none'></div>
在你的地图上。
通过这种方式,其他代码仍可用于工作,并且不会显示在您的页面上
答案 2 :(得分:0)
Ilya是正确的,您使用Google Google协议数据的许可证需要归因(请参阅https://developers.google.com/maps/documentation/javascript/places?hl=en#LogoRequirements)。
此前有人问过类似的问题:google places library without map
为了摆脱地图,我认为你可以做这样的事情:
map = new google.maps.Map(document.createElement('div'), {
center: location,
zoom: 15
});
这样你就不会向DOM添加任何内容。请记住添加Powered by Google图形。 (https://developers.google.com/places/documentation/images/powered-by-google.zip)
答案 3 :(得分:0)
根据文件:
如果您的应用程序在不显示Google地图的网页或视图上显示Google商家信息API数据,则必须显示“由Google提供支持”#34;带有该数据的徽标。
构造
PlacesService(attrContainer: HTMLDivElement | Map)创建一个新的PlacesService实例,用于在指定的容器中呈现属性。
代码段
function initMap(latitude, longitude) {
var location = {
lat: latitude,
lng: longitude
};
console.log(location);
var service = new google.maps.places.PlacesService(document.getElementById('map'));
service.nearbySearch({
location: location,
radius: 3200,
types: ['school']
}, callback);
}
// List nearby places
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
document.getElementById('places').innerHTML += results[i].name + ", " + results[i].vicinity + "<br>";
// listPlaces(results[i]);
}
} else {
document.getElementById('places').innerHTML += "Status: " + status + "<br>";
}
}
google.maps.event.addDomListener(window, "load", function() {
initMap(40.7127837, -74.0059413);
});
&#13;
#map {
height: auto;
width: 100%;
margin: 0px;
padding: 0px
}
&#13;
<script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>
<div id="map"></div>
<div id="places"></div>
<img src="https://developers.google.com/places/documentation/images/powered-by-google-on-white.png" alt="Google Logo" />
&#13;