Google maps api 3 按URL参数显示infowindow在Google地图上的ID
此js代码用于显示定制的Google地图。我想在这段代码中添加函数。URL参数作为ID,并显示infowindow在Google地图上具有此ID。例如“”(此ID为2966)。ID在XMLdata中作为“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
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);
});
}
我自己解决了!谢谢。