【发布时间】:2014-04-25 20:24:43
【问题描述】:
所以,我有一个显示地图和我的位置的 JavaScript 代码。它还应用了一些额外的设置。我的问题是,查看以下 JS 代码,并在此处使用 GoogleMaps API:http://maps.googleapis.com/maps/api/js?sensor=false,有没有办法在此地图上显示访问者的位置?
我正在尝试构建虚拟站点视图 GeoLocator。这显示了我所有网站查看者的位置。或者,也许网上有一个插件。
var map;
function initialize() {
var options =
{
zoom: 2,
center: new google.maps.LatLng(geoip_latitude(), geoip_longitude()),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions:
{
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
poistion: google.maps.ControlPosition.TOP_RIGHT,
mapTypeIds: [google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN,
google.maps.MapTypeId.HYBRID,
google.maps.MapTypeId.SATELLITE]
},
navigationControl: true,
navigationControlOptions:
{
style: google.maps.NavigationControlStyle.ZOOM_PAN
},
scaleControl: true,
disableDoubleClickZoom: true,
draggable: true,
streetViewControl: true,
draggableCursor: 'move'
};
map = new google.maps.Map(document.getElementById("map"), options);
// Add Marker and Listener
var latlng = new google.maps.LatLng(geoip_latitude(), geoip_longitude());
var marker = new google.maps.Marker
(
{
position: latlng,
map: map,
title: 'Click me'
}
);
var infowindow = new google.maps.InfoWindow({
content: 'You Are Here'
});
google.maps.event.addListener(marker, 'click', function () {
// Calling the open method of the infoWindow
infowindow.open(map, marker);
});
}
【问题讨论】:
-
“显示访问者位置”是什么意思?
-
@Hamza Kubba :显示每个访问过该网站的访问者的红色小“光点”。
-
好的...那么访问者的坐标是否可用于此脚本?如果是,您只需遍历它们(for 循环)并为每一个创建一个新的 google.maps.Marker()、一个新的 google.maps.InfoWindow() 和一个新的事件侦听器。
-
我实际上不知道如何使访问者坐标可用于查看地图,也许每次查看者查看页面时,它都会跟踪他们的IP并将其保存到Db?然后,将它们显示在地图上?
-
嗯,这是可能的......你需要一个服务器来发送这个信息(你必须在观众访问的页面上设置),它会找到他们的 IP 并查找他们的IP 数据库上的 long/lat,如果该 IP 是已知的(该信息并不总是存在并且不一定准确,如果它是)。然后你需要有一个接口,从这个数据库中获取 long/lat 值,并用标记将它们显示在地图上,正如我在之前的评论中描述的那样。