javascript - 在谷歌地图上的信息框中显示标记的标题

标签 javascript google-maps

我想显示谷歌地图上有标记的每个地方的标题(地名)。 目前正在显示坐标

infowindow.setContent("coord:"+dmarker.getPosition().toUrlValue(6));

但我希望它显示该地点的“标题”。 我该怎么做呢 我的代码是:

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
   <script type="text/javascript">
   var map = null;
var infowindow = new google.maps.InfoWindow();
var bounds = new google.maps.LatLngBounds();
   var markers = [
                        { 
                             "title": <?php echo "'" . $info['name']  . "'"; ?>,
                             "lat": <?php echo "'" . $info['lat'] . "'"; ?>,
                             "lng": <?php echo "'" . $info['long'] . "'"; ?>,
                        },


            {
               "title": 'Kinar Hotel',
               "lat": '32.8617740',
               "lng": '35.6452770', 
             }
   ];
   </script>


<script type="text/javascript">
function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(
            parseFloat(markers[0].lat),
            parseFloat(markers[0].lng)),
        zoom: 10,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var path = new google.maps.MVCArray();
    var service = new google.maps.DirectionsService();

    var infoWindow = new google.maps.InfoWindow();
    map = new google.maps.Map(document.getElementById("map"), mapOptions);
    var poly = new google.maps.Polyline({
        map: map,
        strokeColor: '#F3443C'
    });
    var lat_lng = new Array();

    /* path.push(new google.maps.LatLng(parseFloat(markers[0].lat),
                                     parseFloat(markers[0].lng)));
    */
    var marker = new google.maps.Marker({
                   position:map.getCenter(), 
                   map:map 
                 });

    bounds.extend(marker.getPosition());
google.maps.event.addListener(marker, "click", function(evt) {
    infowindow.setContent("coord:"+marker.getPosition().toUrlValue(6));
    infowindow.open(map,marker);
});            
    for (var i = 0; i < markers.length; i++) {
        if ((i + 1) < markers.length) {
            var src = new google.maps.LatLng(parseFloat(markers[i].lat), 
                                             parseFloat(markers[i].lng));
            var smarker = new google.maps.Marker({position:src, map:map});
            bounds.extend(smarker.getPosition());
    google.maps.event.addListener(smarker, "click", function(evt) {
       /*  infowindow.setContent("coord:"+smarker.getPosition().toUrlValue(6));*/
        infowindow.open(map,smarker);
    });            
            var des = new google.maps.LatLng(parseFloat(markers[i+1].lat), 
                                             parseFloat(markers[i+1].lng));
            var dmarker = new google.maps.Marker({position:des, map:map});
            bounds.extend(dmarker.getPosition());
    google.maps.event.addListener(dmarker, "click", function(evt) {
        /* infowindow.setContent("coord:"+dmarker.getPosition().toUrlValue(6));*/
        infowindow.open(map,dmarker);
    });            
            //  poly.setPath(path);
            service.route({
                origin: src,
                destination: des,
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            }, function (result, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                    for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++) {
                        path.push(result.routes[0].overview_path[i]);
                    }
                    poly.setPath(path);
                    map.fitBounds(bounds);
                }
            });
        }
    }
} 
google.maps.event.addDomListener(window,'load',initialize);
   </script>

最佳答案

使用标题作为标记属性并在点击处理程序中访问此属性:

var dmarker = new google.maps.Marker({position:des, 
                                      map:map,
                                      title:markers[i+1].title
                                     });

google.maps.event.addListener(dmarker, "click", function(evt) {  
    infowindow.setContent(this.get('title'));
    infowindow.open(map,this);
});  

关于javascript - 在谷歌地图上的信息框中显示标记的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23756738/

相关文章:

javascript - 使用 v-slot (scoped-slot) 时访问 this.$slots

javascript - Google Maps API 相同示例 : one renders, 一个不

android - 计算谷歌地图v2中4条边的坐标

javascript - JavaScript 的安全性 : Edit JS code for form validation in browser then submit the form

javascript - 如何使用 yarn 工作区测试单个文件?

javascript - 如何防止Javascript点击事件发生两次?

javascript - 谷歌地图 - 如何在数据库中保存位置?

javascript - Angular 谷歌地图/NodeJS : Display Markers from Database

javascript - js按钮不更新innerhtml

javascript - 为什么 0.86%1 不是零而是 0.86,因为 0.86/1 的余数为 0?