Google maps api 3 按URL参数显示infowindow在Google地图上的ID

Google maps api 3 按URL参数显示infowindow在Google地图上的ID,google-maps-api-3,google-maps-markers,Google Maps Api 3,Google Maps Markers,此js代码用于显示定制的Google地图。我想在这段代码中添加函数。URL参数作为ID,并显示infowindow在Google地图上具有此ID。例如“”(此ID为2966)。ID在XMLdata中作为“ID”加载 var uptownMap,defLng = -73.963245,defLat = 40.779438, san ={ init : function(){ $(document).ready(function(){ va

此js代码用于显示定制的Google地图。我想在这段代码中添加函数。URL参数作为ID,并显示infowindow在Google地图上具有此ID。例如“”(此ID为2966)。ID在XMLdata中作为“ID”加载

var uptownMap,defLng = -73.963245,defLat = 40.779438,
san ={

    init :
    function(){
        $(document).ready(function(){

            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=san.putGmap";
            document.body.appendChild(script);
        });


    },


    putGmap : 

    function(){

        var myLatlng = new google.maps.LatLng(defLat, defLng);
        var myOptions = {
            zoom: 15,
                            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        uptownMap = new google.maps.Map(document.getElementById("gmapArea"), myOptions);
        san.getXmlData();
    },
    getXmlData : function(){
        $.ajax({
            type: 'GET',
            cache: true,
            async: true,
            url: '/newyork/map_uptown_xml/',
            datatype: 'xml',
            success: san.parseXmlData
        });
    },
        parseXmlData: function (xml) {

        //a single infowindow for all markers
        var infowindow = new google.maps.InfoWindow({
            pixelOffset: new google.maps.Size(0, 10)
        });

        var i = 0,
            id, name, url, lat, lng, copy, lead, ename, tag;

        $("<ol/>")
            .attr('id', 'gmapAnchor')
            .appendTo('div#gmapController');
        $(xml)
            .find('item')
            .each(function (i) {
                i++;
                id = $(this)
                    .find('description id')
                    .text();
                name = $(this)
                    .find('description name')
                    .text();
                url = $(this)
                    .find('description path')
                    .text();
                lat = $(this)
                    .find('description lat')
                    .text();
                lng = $(this)
                    .find('description lng')
                    .text();
                tag = $(this)
                    .find('description tag')
                    .text();
                tag = tag.slice(5, 20);
                console.log(tag)


                var customIcons = {
                    hotel:
                    {
                        icon: 'http://www.tabikobo.com/newyork/img/icon_hotel.png'
                    },

                var icon = customIcons[tag] || {};



                var myLatLng = new google.maps.LatLng(lat, lng);
                var beachMarker = new google.maps.Marker({
                    position: myLatLng,
                    map: uptownMap,
                    icon: icon.icon,
                });


                var htmlTmpl = {
                    hotel:
                    {
                        content: '<div class="infoWinWrapper"><strong><a href="' +
                            url + '">' + name +
                            '</a></strong><br />' + ename +
                            '<br />' + lead + '</div>'
                    },
                };


                var htmlTmpl = htmlTmpl[tag] || {};



                //click-listener for marker
                google.maps.event.addListener(beachMarker, 'click',
                    function () {
                        //update the content
                        infowindow.setContent(
                            '<div class="hook">' + htmlTmpl
                            .content + '</div>');
                        infowindow.open(uptownMap, this);
                        google.maps.event.addListenerOnce(
                            infowindow, 'domready',
                            function () {
                                var l = $('.hook')
                                    .parent()
                                    .parent()
                                    .parent()
                                    .siblings()
                                    .addClass("infoBox");

                            });

                    });

                //Creat a Tag
                san.putData(name, url, lat, lng, i);
            });
    },
    putData : function(name, url, lat, lng, num){
        var x = num;
        x += '';
        if(x.length == 1){
            var y = '0' + x;
        }else {
            y = x;
        }


        san.setEvent();
    },
    setEvent : function(){
        $("ul#area_list li a").bind('mouseover', function(){
            $(this).parent().find('span.lat').text();

            var point = new google.maps.LatLng(
                $(this).parent().find('span.lat').text(), 
                $(this).parent().find('span.lng').text()
            );

            uptownMap.setZoom(17);
            uptownMap.setCenter(point);

        });
        $("#btnResetZoom a").bind('click', function(){
            var point = new google.maps.LatLng(defLat, defLng);
            uptownMap.setZoom(15);
            uptownMap.setCenter(point);
            return false;
        });
    }

}
window.onload = san.init();
var uptownMap,defLng=-73.963245,defLat=40.779438,
桑={
初始化:
函数(){
$(文档).ready(函数(){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=”http://maps.googleapis.com/maps/api/js?sensor=false&callback=san.putGmap";
document.body.appendChild(脚本);
});
},
putGmap:
函数(){
var mylatng=new google.maps.LatLng(defLat,defLng);
变量myOptions={
缩放:15,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
uptownMap=new google.maps.Map(document.getElementById(“gmapera”),myOptions);
san.getXmlData();
},
getXmlData:function(){
$.ajax({
键入:“GET”,
是的,
async:true,
url:“/newyork/map_uptown_xml/”,
数据类型:“xml”,
成功:san.parseXmlData
});
},
parseXmlData:函数(xml){
//所有标记的单个信息窗口
var infowindow=new google.maps.infowindow({
pixelOffset:new google.maps.Size(0,10)
});
var i=0,
id、名称、url、lat、lng、副本、铅、烯、标签;
$("")
.attr('id','gmapAnchor'))
.appendTo('div#gmapController');
$(xml)
.find('项目')
.每项功能(i){
i++;
id=$(此)
.find('说明id')
.text();
名称=$(此)
.find('说明名称')
.text();
url=$(此)
.find('描述路径')
.text();
lat=$(此)
.find('description lat')
.text();
液化天然气=$(本)
.find('说明')
.text();
标记=$(此)
.find('description tag')
.text();
tag=tag.slice(5,20);
console.log(标记)
var customIcons={
酒店:
{
图标:'http://www.tabikobo.com/newyork/img/icon_hotel.png'
},
var icon=customIcons[tag]| |{};
var mylatng=new google.maps.LatLng(lat,lng);
var beachMarker=new google.maps.Marker({
职位:myLatLng,
地图:上城地图,
icon:icon.icon,
});
var htmlTmpl={
酒店:
{
内容:'
'+ename+ “
”+铅+” }, }; var htmlTmpl=htmlTmpl[tag]| |{}; //单击标记的侦听器 google.maps.event.addListener(beachMarker,'click', 函数(){ //更新内容 infowindow.setContent( ''+htmlTmpl .内容+”; infowindow.open(uptownMap,this); google.maps.event.addListenerOnce( 信息窗口,“domready”, 函数(){ 变量l=$(“.hook”) .parent() .parent() .parent() .兄弟姐妹() .addClass(“信息盒”); }); }); //创建标签 san.putData(名称、url、lat、lng、i); }); }, putData:函数(名称、url、lat、lng、num){ var x=num; x+=''; 如果(x.length==1){ 变量y='0'+x; }否则{ y=x; } san.setEvent(); }, setEvent:function(){ $(“ul#area#u list li a”).bind('mouseover',function(){ $(this.parent().find('span.lat').text(); var point=new google.maps.LatLng( $(this).parent().find('span.lat').text(), $(this.parent().find('span.lng').text() ); uptownMap.setZoom(17); uptownMap.设置中心(点); }); $(“#btnResetZoom a”).bind('click',function(){ var point=new google.maps.LatLng(defLat,defLng); uptownMap.setZoom(15); uptownMap.设置中心(点); 返回false; }); } } window.onload=san.init();
我自己解决了!谢谢

            var PageMapID = location.href.split('?=');
            var PageMapID2 = PageMapID[PageMapID.length -1];

            if (id == PageMapID2) {
                $(document).ready(function(){

                    infowindow.open(uptownMap,beachMarker);
                    infowindow.setContent('<div class="hook">' + htmlTmpl.content + '</div>');

                    var latlng = new google.maps.LatLng(lat, lng);
                    uptownMap.setCenter(latlng);
                });
            }
var PageMapID=location.href.split(“?=”);
var PageMapID2=PageMapID[PageMapID.length-1];
如果(id==PageMapID2){
$(文档).ready(函数(){
信息窗口打开(uptownMap,beachMarker);
infowindow.setContent(“”+htmlTmpl.content+“”);
var latlng=新的google.maps.latlng(lat,lng);
uptownMap.设置中心(latlng);
});
}

我自己解决了!谢谢。