ColdFusion的谷歌地图和jQuery(Coldfusion Google Maps and

2019-10-17 02:12发布

我有一个具有动态标记和信息框从一个ColdFusion查询谷歌地图,我想可以从网页上的链接打开信息窗口,我使用的是jQuery的,但它不工作,什么是最好的办法做到这一点。

我的脚本:

var map;

var lastinfowindow;

function initialize() {


    // Create an array of styles.
  var styles = [
    {
      stylers: [
        { hue: "#0b9cc1" },
        { saturation: -20 }
      ]
    },{
      featureType: "road",
      elementType: "geometry",
      stylers: [
        { lightness: 100 },
        { visibility: "simplified" }
      ]
    },{
      featureType: "administrative.country",
      elementType: "labels",
      stylers: [
        { visibility: "on" }
      ]
    },

    { featureType: "water", 
     elementType: "geometry", 
    stylers: [ { visibility: "on" }, { lightness: -10 }] },
    { featureType: "poi", 
    stylers: [ { visibility: "on" } ] }

  ];

  // Create a new StyledMapType object, passing it the array of styles,
  // as well as the name to be displayed on the map type control.
  var styledMap = new google.maps.StyledMapType(styles,
    {name: "Styled Map"}); 





    var latlng = new google.maps.LatLng(40, 13);
    var mapOptions = {
        zoom: 4,
        center: latlng,
        mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
    };
    map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);

    var image = 'sp-mark.png';



   LatLng = new google.maps.LatLng ('23.00593', '120.65287');
            var marker38 = new google.maps.Marker({
                map: map,
                position: LatLng,
                title: 'Event 1 - 38',
                icon:image
            });

            var infowindow38 = new google.maps.InfoWindow({
            content: "<h3 class=maph3>Event 1</h3><p>Location: Tiawan</p>"
            });

            google.maps.event.addListener(marker38, 'click', function() {
             infowindow38.open(map,marker38);

            marker38.gig_id = 38;
            marker38.infowindow = infowindow38;
            markers[markers.length] = marker38;
            });



   LatLng = new google.maps.LatLng ('52.19173', '-1.7083');
            var marker30 = new google.maps.Marker({
                map: map,
                position: LatLng,
                title: 'Event 2 - 30',
                icon:image
            });

            var infowindow30 = new google.maps.InfoWindow({
            content: "<h3 class=maph3>Event 2</h3><p>Location: UK</p>"
            });

            google.maps.event.addListener(marker30, 'click', function() {
             infowindow30.open(map,marker30);

            marker30.gig_id = 30;
            marker30.infowindow = infowindow30;
            markers[markers.length] = marker30;
            });



   LatLng = new google.maps.LatLng ('38.98083', '1.30056');
            var marker32 = new google.maps.Marker({
                map: map,
                position: LatLng,
                title: 'Event 3 - 32',
                icon:image
            });

            var infowindow32 = new google.maps.InfoWindow({
            content: "<h3 class=maph3>Event 3</h3><p>Location: Ibiza</p>"
            });

            google.maps.event.addListener(marker32, 'click', function() {
             infowindow32.open(map,marker32);

            marker32.gig_id = 32;
            marker32.infowindow = infowindow32;
            markers[markers.length] = marker32;
            });



   LatLng = new google.maps.LatLng ('38.96', '1.39861');
            var marker41 = new google.maps.Marker({
                map: map,
                position: LatLng,
                title: 'Event 4 - 41',
                icon:image
            });

            var infowindow41 = new google.maps.InfoWindow({
            content: "<h3 class=maph3>Event 4</h3><p>Location: Ibiza</p>"
            });

            google.maps.event.addListener(marker41, 'click', function() {
             infowindow41.open(map,marker41);

            marker41.gig_id = 41;
            marker41.infowindow = infowindow41;
            markers[markers.length] = marker41;
            });



   LatLng = new google.maps.LatLng ('-33.92528', '18.42389');
            var marker47 = new google.maps.Marker({
                map: map,
                position: LatLng,
                title: 'Event 5 - 47',
                icon:image
            });

            var infowindow47 = new google.maps.InfoWindow({
            content: "<h3 class=maph3>Event 5</h3><p>Location: Cape Town</p>"
            });

            google.maps.event.addListener(marker47, 'click', function() {
             infowindow47.open(map,marker47);

            marker47.gig_id = 47;
            marker47.infowindow = infowindow47;
            markers[markers.length] = marker47;
            });




    //Associate the styled map with the MapTypeId and set it to display.
     map.mapTypes.set('map_style', styledMap);
     map.setMapTypeId('map_style');

     $(".order").click(function() {
        var thisorder = $(this).data("gig_id");
        for(var i=0; i<markers.length; i++) {
            if(markers[i].gig_id == thisorder) {
                console.log("found my match");
                //get the latlong
                if(lastinfowindow instanceof google.maps.InfoWindow) lastinfowindow.close();
                console.dir(markers[i]);
                map.panTo(markers[i].getPosition());
                markers[i].infowindow.open(map, markers[i]);
                lastinfowindow = markers[i].infowindow;
            }
        }
    });
}

这是身体:

<style>
    #map_canvas {
    width: 1250px; height: 550px;
    float:left;
    }
    #orders {
        margin-top: 0px;
        padding-top: 0px;
        margin-left: 10px;
        float:left;
        height: 550px;

    }
    .order {
        border-style:solid;
        border-width:thick;
            width: 300px;
            padding: 5px;
            cursor:pointer;
            margin-top:0px;
            font-family:Arial, Helvetica, sans-serif;
    }
    </style>


    <body onload="initialize()">

    <div id="map_canvas"></div>

    <div id="orders">

        <p class="order" data-gig_id="38">
        <b>Event 38</b><br/>
        Event 1
        </p>

        <p class="order" data-gig_id="30">
        <b>Event 30</b><br/>
        Event 2
        </p>

        <p class="order" data-gig_id="32">
        <b>Event 32</b><br/>
        Event 3
        </p>

        <p class="order" data-gig_id="41">
        <b>Event 41</b><br/>
        Event 4
        </p>

        <p class="order" data-gig_id="47">
        <b>Event 47</b><br/>
        Event 5
        </p>

    </div>

    </body>

我使用jQuery来创建点击功能。 我已经输出的结果,地图工作正常,但网页打开信息窗口不工作的链接,我使用由雷蒙德·卡姆登的例子。

任何帮助将不胜感激。

Answer 1:

您正在尝试个人标记添加到其没有定义的数组。 在您的初始化函数的顶部添加

var markers = [];


文章来源: Coldfusion Google Maps and Jquery