Wordpress:谷歌地图多个标记在手风琴的侧边栏链接上变化


Wordpress : google map multiple markers change upon sidebar links in accordion

我正在使用带有jupiter主题和视觉作曲家的wordpress来构建我所在城市要做的事情的在线议程。

我们想要一个页面,点击几下就可以看到所有场馆的位置。

我想做的是在左手边放一个手风琴,在右手边放一张地图(谷歌地图?)。手风琴会将场地分为几类(剧院、音乐场地、展览等)。例如,点击"剧院"后,我们会看到下面所有剧院的名称,以及地图上不同的标记位置。因此,地图上的标记会根据我们点击的手风琴的类别进行更改和调整

这有点像:http://www.xn--bilan-de-comptences-nzb.fr/listing.php?region=aquitaine&departement=33&ville_cp=33000&第1页当点击"suivant"时,它会转到另一个页面。我想在一页纸上做或多或少相同的事情。

Html和css不是问题,我知道php和mysql是如何工作的,但我不是专家。我对javascript和jquery知之甚少。

感谢您的时间和帮助!

我之前为Maps开发了一个类似的代码,如果需要的话,你可以四处玩并制作表格。

<div id="map_canvas" style="width:auto;height:500px">

您可以在要添加Map的页面或部分中添加此div。使用VC html元素并根据需要更改尺寸**

创建一个名为"Maps.js"的文件,并包含以下代码;

使用网站http://www.latlong.net/你得到Lat&详细信息很长,并根据您的位置更改var标记信息。记住将js文件保存在WordPress主题安装文件夹的js文件夹中。

让我知道进展如何!

jQuery(function($) {
        // Asynchronously Load the map API 
        var script = document.createElement('script');
        script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize";
        document.body.appendChild(script);
    });
    function initialize() {
        var map;
        var bounds = new google.maps.LatLngBounds();
        var mapOptions = {
            mapTypeId: 'roadmap'
        };
        // Display a map on the page
        map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
        map.setTilt(45);
        // Multiple Markers
        var markers = [
            ['Church Cross' , 6.027207, 80.216655],
            ['Middle Street', 6.027960, 80.216687],
            ['Lighthouse Street' , 6.026529, 80.216688]
            ['Court Square' , 6.027110, 80.219057]
        ];
        // Info Window Content
        var infoWindowContent = [
            ['<div class="info_content">' +
            '<b>Church Cross</b><br><br>' +
            '<p>No: 9,</p><p>Church Cross St,</p><p>Galle,</p><p>Sri Lanka.</p>' +        '</div>'],
            ['<div class="info_content">' +
            '<b>Middle Street</b><br><br>' +
            '<p>No.5, Middle Street,</p><p>Galle,</p><p>Sri Lanka.</p>' +
            '</div>'],
            ['<div class="info_content">' +
            '<b>Lighthouse Street</b><br><br>' +
            '<p>No.5, Middle Street,</p><p>Galle,</p><p>Sri Lanka.</p>' +
            '</div>']
            ['<div class="info_content">' +
            '<b>Court Square</b><br><br>' +
            '<p>No.1, Court Square,</p><p>Galle,</p><p>Sri Lanka.</p>' +
            '</div>']
        ];
        // Display multiple markers on a map
        var infoWindow = new google.maps.InfoWindow(), marker, i;
        // Loop through our array of markers & place each one on the map  
        for( i = 0; i < markers.length; i++ ) {
            var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
            bounds.extend(position);
            marker = new google.maps.Marker({
                position: position,
                map: map,
                title: markers[i][0]
            });
            // Allow each marker to have an info window    
            google.maps.event.addListener(marker, 'click', (function(marker, i) {
                return function() {
                    infoWindow.setContent(infoWindowContent[i][0]);
                    infoWindow.open(map, marker);
                }
            })(marker, i));
            // Automatically center the map fitting all markers on the screen
            map.fitBounds(bounds);
        }
        // Override our map zoom level once our fitBounds function runs (Make sure it only runs once)
        var boundsListener = google.maps.event.addListener((map), 'bounds_changed', function(event) {
            this.setZoom(17);
            google.maps.event.removeListener(boundsListener);
        });
    }