我有一个网站,通过谷歌地图,街道和地方加载一个位置的3个单独的“视图”。
请参阅下面的代码:
我终于让地图和街景视图正常工作,但我正在努力解决这个问题。
我有一个标签显示与地图相同但添加了地点。
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script>
<script type="text/javascript">
var myLattitude = <?php echo $data["lattitude"]; ?>;
var myLongitude = <?php echo $data["longitude"]; ?>;
var poiMap;
var infowindow;
function initializePoi() {
var poiCentre = new google.maps.LatLng(myLattitude, myLongitude);
poiMap = new google.maps.Map(document.getElementById('poi-canvas'), {
center: poiCentre,
zoom: 15
});
var request = {
location: poiCentre,
radius: 500,
types: ['store']
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(poiMap);
service.nearbySearch(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: poiMap,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(poiMap, this);
});
}
现在这正确初始化但控制台抛出以下错误: TypeError: google.maps.places未定义
我只是想知道为什么会出现这个错误,我喜欢使用干净的无错误代码。
这些地方确实能够正确显示所有地方。
答案 0 :(得分:56)
您应该在Google API网址
中添加选项libraries=places
在您的情况下,您应该替换以下内容:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script>
有了这个:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap&libraries=places"></script>
查看src=""
答案 1 :(得分:0)
现在,您必须使用https而不是http。
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap&libraries=places"></script>
其他所有与前面提到的答案相同。
答案 2 :(得分:0)
由于最佳答案针对的是 vanilla 版本,因此适用于使用 google-maps-react 的用户:
将库:['places'] 添加到您的 GoogleMapReact 组件:
<GoogleMapReact
bootstrapURLKeys={{ key: apiKey, libraries: ['places'] }}
...
/>