在点击按钮时在谷歌地图周围移动
Move around GoogleMap on button click
>我正在创建一个带有商店列表及其详细信息的商店定位器,此外,每个商店都有一个"在地图上查看"按钮,可让您移动到相应的标记并显示infowindow
,就像在这个网站上一样 http://www.poundland.co.uk/store-finder/searchResults/
我有这段代码来创建标记:
function createMarker(point, name, address, urladdress, locationNumber,id) {
var image = {
url: "/i/markers/MapIcon.png",
size: new google.maps.Size(48, 55),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(24, 0)
};
var marker = new google.maps.Marker({
position: point,
map: map,
/*shadow: shadow,*/
icon: image,
title: address,
// id:id
});
var infowindow = new google.maps.InfoWindow({
content: name + '<br>' + address + '<br>' + '<a target="_blank" href="http://maps.google.co.uk/maps?f=q&hl=en&q=from:' + homeSpatialInfo.fromAddress + '+to:' + urladdress + '">Directions</a>'
});
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
map.setZoom(16);
});
return marker;
}
我为每个按钮提供与其关联的商店的 ID
<div style="text-align: right; margin-top: 5px;">
<asp:Button ID="viewStoreBtn-133"class="btn btn-default btn-sm viewStoreBtn" runat="server" Text="view on map" style="border-radius: 10px;"/>view on map
</div>
之后,我想我将不得不添加一个onclick
事件侦听器,但我不确定在 onclick
函数中写什么(因为我对此很陌生(。
您可以使用google.maps.event.addListener
进行click
。这是我的例子,我认为这对你很有用。
在 initMap 中添加以下代码:
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event);
});
function placeMarker(event) {
var geocoder = new google.maps.Geocoder;
console.log(event.latLng);
var infowindow = new google.maps.InfoWindow();
geocoder.geocode({'location': event.latLng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: event.latLng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
if (infowindow) {
infowindow.close();
}
infowindow.setContent('<div><strong>' + results[0].name + '</strong><br>' +
'<br>' +
results[0].formatted_address + '</div>');
console.log(results[0].geometry.location);
console.log(results[0].geometry.location.lat());
console.log(results[0].name + results[0].formatted_address + results[0].geometry.location.lat() + results[0].geometry.location.lng());
infowindow.open(map, this);
});
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
编辑:
如果您有标记,则可以使用平移功能来移动视图区域。
google.maps.event.addListener(marker, 'click', function() {
map.panTo(this.getPosition());
}
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何在Javascript中在桌子周围随机移动图像
- 在字符串的各个部分周围移动
- 如何在不移动 html 中周围元素的情况下扩展图像
- 在点击按钮时在谷歌地图周围移动
- 在不使用滚动条的情况下在巨大的 html 页面周围移动浏览器视图
- 元素周围的蛇形移动发光
- 如果在 DOM 周围移动,SVG 元素将丢失事件处理程序
- 在不移动光标的情况下,在contentitable内的某些文本周围放置标记
- 如何移动一个图像周围的箭头键javascript
- Javascript/HTML5 -使用WASD在矩形周围移动制作画布动画.在执行A键和W键时遇到困难