Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GoogleMapsJavaScriptAPIv3上使用点击事件显示一个集中在标记上的地图?_Javascript_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

如何在GoogleMapsJavaScriptAPIv3上使用点击事件显示一个集中在标记上的地图?

如何在GoogleMapsJavaScriptAPIv3上使用点击事件显示一个集中在标记上的地图?,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我创建了一个关注用户位置的地图。地图有一个带有信息窗口的单个标记。当用户点击信息窗口时,它会给他一个指向信息页面(info.html)的超链接。我想创建一个选项,允许用户从信息页面返回地图,地图应该集中在同一个标记上(而不是他的当前位置)。基本上是反方向的。听起来很简单,但我不知道如何编写代码。 我想我可以为每个标记构建不同的地图,但这似乎不太可能是正确的解决方案。任何帮助都将不胜感激 这是我对脚本的尝试,(initialize2()无效): $(文档).ready(函数(){ getLocat

我创建了一个关注用户位置的地图。地图有一个带有信息窗口的单个标记。当用户点击信息窗口时,它会给他一个指向信息页面(info.html)的超链接。我想创建一个选项,允许用户从信息页面返回地图,地图应该集中在同一个标记上(而不是他的当前位置)。基本上是反方向的。听起来很简单,但我不知道如何编写代码。 我想我可以为每个标记构建不同的地图,但这似乎不太可能是正确的解决方案。任何帮助都将不胜感激

这是我对脚本的尝试,(
initialize2()
无效):

$(文档).ready(函数(){
getLocation();
});
var映射;
var jones=new google.maps.LatLng(40.59622788325198,-73.50334167480469);
函数getLocation(){
navigator.geolocation.getCurrentPosition(
职能(职位){
var myLatLng=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
地图设置中心(myLatLng);
},
函数(){
警报(“请在您的设备上启用位置检测”);
}
);
}
函数初始化(){
变量映射选项={
中心:地图,
缩放:9,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
var infowindow=new google.maps.infowindow({
});
var marker1=新的google.maps.Marker({
职位:琼斯,
地图:地图
});
google.maps.event.addListener(marker1,'click',function(){
infowindow.setContent(“琼斯海滩”);
打开(地图,标记1);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
//这是我试图关注的标记
//将有一个按钮从info.html调用此函数
函数初始化2(){
变量映射选项2={
缩放:14,
中心:新google.maps.LatLng(40.59622788325198,-73.50334167480469),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项2);
}
google.maps.event.addDomListener(窗口'load',初始化2);

在url中使用哈希怎么样

尝试使用“”:

$(document).ready(function() {
    getLocation();
});

var map;
var jones = new google.maps.LatLng(40.59622788325198, -73.50334167480469);

function getLocation() {
    navigator.geolocation.getCurrentPosition(
        function(position) {
            var myLatLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
            map.setCenter(myLatLng);   
        },
        function() {
            alert("Please enable location detection on your device");
        }
    );
}

function initialize() {
    var mapOptions = {
        center: map,
        zoom: 9,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    var infowindow = new google.maps.InfoWindow({
    });

    var marker1 = new google.maps.Marker({
        position: jones,
        map: map
    });

    google.maps.event.addListener(marker1, 'click', function() {
        infowindow.setContent('<h4>Jones Beach</h4><a href="info.html">See info</a>');
        infowindow.open(map,marker1);   
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

// this is my attempt to focus on the marker
// there will be a button that will evoke this function from info.html
function initialize2() {
  var mapOptions2 = {
    zoom: 14,
    center: new google.maps.LatLng(40.59622788325198, -73.50334167480469),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions2);
}

google.maps.event.addDomListener(window, 'load', initialize2);
$(function() {

    var places = {
        one: [40.59622788325198, -73.50334167480469],
        two: [50.59622788325198, -71.50334167480469]
    };

    var div = $('#map-canvas');

    var map = new google.maps.Map(div.get(0), {
        center: map,
        zoom: 9,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var markers = {};

    $.each(places, function(name) {

        markers[name] = new google.maps.Marker({
            position: new google.maps.LatLng(this[0], this[1]),
            map: map
        });

    });

    var place = location.hash.substr(1);

    if(place in places) {

        map.setCenter(markers[place].getPosition());

    }

});