所以我按照Google Map API的文档来实现它。
但是我没有显示地图,而是希望它不可见,但我的位置仍然显示在应该包含标记的位置。
能做到吗?如何?
我发现了类似的question,但已经过了一年,我想也许已经有了解决方案。
答案 0 :(得分:1)
实际上你不能反对谷歌政策:
没有Google地图,不得使用内容。除非Maps API文档明确允许您这样做,否则如果没有相应的Google地图,您将不会在Maps API实施中使用内容。例如,您可以在没有相应Google地图的情况下显示街景图像,因为Maps API文档明确允许此用途。
不使用非谷歌地图的内容。您不得在包含非Google地图的Maps API实施中使用该内容。
选中此选项可确保您的应用不会破坏任何Google条款https://developers.google.com/maps/terms#10-license-restrictions
答案 1 :(得分:0)
您可以使用styling隐藏您喜欢的任何地图功能。
以下是一个示例地图,其中隐藏了所有内容,并在所有几何体上应用了填充颜色,以便在全球范围内拥有统一的背景。
function initialize() {
var southWest = new google.maps.LatLng(40.744656, -74.005966);
var northEast = new google.maps.LatLng(34.052234, -118.243685);
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
var markers = [];
var myLatlng = new google.maps.LatLng(38.392303, -86.931067);
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"color": "#fff050"
}]
},
{
"elementType": "geometry.stroke",
"stylers": [{
"visibility": "off"
}]
},
{
"elementType": "labels",
"stylers": [{
"visibility": "off"
}]
}
],
disableDefaultUI: true
});
// Create some markers
for (var i = 1; i < 100; i++) {
var location = new google.maps.LatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random());
var marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
}
}
#map {
height: 150px;
}
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initialize"></script>
<div id="map"></div>
使用disableDefaultUI: true
也会删除所有地图控件。右下方的徽标和文字必须保留在法律方面。
This tool可以帮助您达到自己喜欢的效果。
所有这些都记录在案并完全合法。
修改:此示例使用Javascript API(当您使用google-maps-api-3标记问题时),但您可以在Android上实现相同功能,请参阅the documentation。< / p>