6

谷歌地图新手,也不是脚本专家。提前感谢您提供的任何帮助。

我将谷歌地图放在商店位置页面上。我已经设法让地图使用搜索显示我想要的商店位置的标记。现在我希望将 infoWindow 填充为看起来像标准的 google 窗口。但是使用我能够在位置库上找到的代码,结果显示为未格式化且没有换行符,并且如果缺少信息,则显示错误,等等......我已经搜索并没有找到任何有帮助的东西- 所以如果这已经得到回答,请原谅我 - 我已经多次阅读谷歌地方图书馆,所以要么我很密集,要么他们只是没有解决这个具体问题。

用户将单击页面上列出的商店位置,我想向他们展示带有一个标记的地图(通过搜索我想我可以做到这一点)并且我希望商店信息在他们单击时显示在 infoWindow 中在标记上(最好我希望 infoWindow 已经打开,但我也找不到任何东西)。由于我是该站点的新手,因此无法发布 infoWindow 的图像,因此希望不需要它。就像 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>
4

1 回答 1

3

我终于在另一篇文章中找到了一些格式化 infoWindow 的代码,他们在其中回答了关于删除infoWindow 边框的问题。

这是我的例子:

 infowindow.setContent('<span style="padding: 0px; text-align:left" align="left"><h5>' + place.name + '&nbsp; &nbsp; ' + place.rating 
                            + '</h5><p>' + place.formatted_address + '<br />' + place.formatted_phone_number + '<br />' +  
                            '<a  target="_blank" href=' + place.website + '>' + place.website + '</a></p>' ) ;

我还想出了如何使用Places Library中描述的 getDetails 函数

我仍然不知道如何获取评级信息(我正在使用标签,但它给出了错误),如何检索该位置的图像,也不知道如何消除出现的“未定义”错误。

最后一个元素是在地图加载时打开 infoWindow ......我看到了一篇关于它的帖子,但无法让它工作。

于 2012-05-18T04:58:54.950 回答