我刚开始接触Google Maps,并不是一位脚本专家。非常感谢您提供的帮助。
我正在一个商店位置页面上放置一个Google地图。我已经成功使用搜索功能让地图显示了我想要的商店位置标记。现在我希望信息窗口被填充以看起来像标准的Google窗口。但是,使用我在地点库中找到的代码,结果会呈现出没有换行符的未格式化的形式,并且如果缺少某些信息,则会显示错误等。我已经搜索了很多内容,但都没有找到有用的信息。因此,如果这个问题已经得到解答,请原谅我。我已经反复阅读了Google地点库,但无论我是太蠢还是他们不涉及这个问题。
用户将单击列在页面上的商店位置,我希望向他们展示地图并显示一个标记(我认为通过搜索我可以做到这一点),当他们单击标记时,我希望商店信息显示在信息窗口中(最好是预先打开信息窗口,但我也找不到任何相关信息)。就像Google地图网站一样,我希望有一个格式良好的名称,声誉星级,格式化的地址,电话号码和网站,以及业务的图片(如果有的话)。下面的示例是针对所有这些信息都包含在Google中的业务。我目前拥有地图的代码已包括在内。
请不要简单回复以将我引导回地点库;如果只有这些,那么并没有太大帮助。我需要一些澄清,并尽可能提供一个示例。谢谢。
<script type="text/javascript">
var map;
var service;
var infowindow;
function initialize() {
var mvale = new google.maps.LatLng(40.708572,-74.017385);
map = new google.maps.Map(document.getElementById('map_canvas'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: mvale,
zoom: 16
});
var request = {
location: mvale,
radius: '500',
keyword: "Michelle Vale"
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.search(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name + place.rating + place.vicinity +
place.formatted_address + place.website );
infowindow.open(map, this);
});
}
function openInfoWindow(id){return true;}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
place.rating
变量将为undefined
。在使用变量之前,应检查它们是否为undefined
。目前还没有找到获取场所图片的方法。这里在Places API问题跟踪器中有一个功能请求:http://code.google.com/p/gmaps-api-issues/issues/detail?id=3552 请点击“星形”图标以接收未来更改通知,并让我们知道您希望看到它得到解决。 - Chris Green