【发布时间】:2016-01-08 20:27:29
【问题描述】:
我是谷歌地图的新手。我浏览了很多帖子,但没有找到我想要的。我想实现这个:improve-my-city
但我只能获取用户位置和拖动标记。我希望标记移动到在按钮单击时在地图上输入的位置,反之亦然,当用户拖动标记时,地址应该在文本框中。我的信息窗口也没有显示。
当我使用 Asp.net 时,我的 html 页面有所不同,我的地图显示在 asp 页面上的 iframe 中。文本框和按钮在 .aspx 页面中
<div id="map"></div>
<script>
function initMap() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
updateMarkerPosition(latlon);
geocodePosition(latlon);
}
function showPosition(position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
latlon = new google.maps.LatLng(lat, lon)
mapholder = document.getElementById('map')
var myOptions = {
center: latlon,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
navigationControlOptions:
{ style: google.maps.NavigationControlStyle.SMALL }
}
var contentString = 'Drag red marker <br/> to improve geo-location';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map, marker);
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var marker = new google.maps.Marker({
position: latlon,
map: map,
title: 'Report refers to this location',
draggable: true
});
// Add dragging event listeners.
google.maps.event.addListener(marker, 'dragstart', function () {
updateMarkerAddress('Dragging...');
});
google.maps.event.addListener(marker, 'drag', function () {
updateMarkerStatus('Dragging...');
updateMarkerPosition(marker.getPosition());
});
google.maps.event.addListener(marker, 'dragend', function () {
updateMarkerStatus('Drag ended');
geocodePosition(marker.getPosition());
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap"
async defer>
</script>
【问题讨论】:
-
嗨@Ashwini ..你在什么时候得到..你想达到的第一个目标是什么?
-
嗨 scais。我希望将标记指向的位置传递到文本框
-
我正在使用您的代码,但是当我尝试拖动标记时,控制台出现错误.. updateMarkerStatus 未定义...请告诉我.. 这是您想要实现的吗?跨度>
-
这个晚上可以帮助你一次又一次..你必须耐心
-
我也遇到了同样的错误。我不知道该怎么办。慢慢来,我会等的。 :)
标签: html asp.net google-maps