Javascript 根据Google Api v3 book/添加一个标记,并使用一个按钮
我创建了一个简单的按钮,询问纬度和经度,如果用户输入22,15,就会显示一个标记,但由于某种原因,我的代码无法工作 代码是:Javascript 根据Google Api v3 book/添加一个标记,并使用一个按钮,javascript,google-maps,google-maps-api-3,markers,Javascript,Google Maps,Google Maps Api 3,Markers,我创建了一个简单的按钮,询问纬度和经度,如果用户输入22,15,就会显示一个标记,但由于某种原因,我的代码无法工作 代码是: var map; var marker; var myLatLng = new google.maps.LatLng(); function initialize() { var myLatLng = new google.maps.LatLng(45.4375, 12.3358); myOptions = { zoom: 5,
var map;
var marker;
var myLatLng = new google.maps.LatLng();
function initialize() {
var myLatLng = new google.maps.LatLng(45.4375, 12.3358);
myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'), myOptions);
function zoomto() {
map.set('zoom', parseInt(prompt('zoom value')));
}
function setCentre()
{
map.setOptions({center: new google.maps.LatLng(prompt("Latitude: "),prompt("Longitude: "))});
}
google.maps.event.addDomListener(window, 'load', initialize);
function Marker1 () {
map.setOptions({Marker: new google.maps.LatLng(prompt("Latitude: "),prompt("Longitude: "))});
}
function Marker () {
map.setOptions({Marker: new google.maps.LatLng(prompt("Latitude: "),prompt("Longitude: "),prompt("Color "),prompt("style "),prompt("number "))});
}
var marker = new google.maps.Marker({
position: myLatLng,
title: 'Hello World'
});
我有许多按钮缩放或移动到这两个工作,但我不能让标记的工作
感谢您的关注和帮助。以下是一个示例,介绍如何根据包含验证的用户输入(lat/lng)将地图居中 检查lat和lng是否有效。可以找到有关纬度最小/最大范围的更多信息 HTML
<form id="mapCenterForm">
Lat:
<input type="text" id="lat" />
<br />Lng:
<input type="text" id="lng" />
<br />
<input type="submit" value="Center map" />
</form>
按钮尚未显示,标记代码为:var marker=new google.maps.marker({map:map,position:mylatng,title:“Hello World!”);你根本没有添加标记+你使用的是未记录的方法+你没有花任何精力去寻找如何做你想做的事情。我试图添加整个代码,但它说有问题,它不允许我这么做。它只识别了我留下的部分,我有更多的代码,但它不想让我发布它,所以我必须一点一点地将它添加到注释中。
myLatlng
和myLatlng
不一样。函数Marker1(){map.setOptions({Marker:new google.maps.LatLng(提示符(“纬度”)、提示符(“经度”)}这是按钮的代码,我现在要做的唯一一件事就是让它在地图上显示标记。你的代码工作得很好。我正试图用我的代码来做几乎相同的事情,但是用一个标记,这样我就可以输入值并在那里放置一个标记。。。我可以把这些盒子也用于这个特殊用途吗?可以。我已经更新了小提琴和代码。它现在将地图居中,并添加一个标记。仅供参考,我已修改DOM事件侦听器,使其侦听表单提交而不是按钮单击(意味着您可以在表单字段中单击enter而不是单击提交按钮…)。再次感谢您的帮助,我将尝试使我的与您的相同,因为我有一个很好的示例可以理解。如果有帮助,请考虑采纳/接受答案。
// Calculate maximum latitude value on mercator projection
var maxLat = Math.atan(Math.sinh(Math.PI)) * 180 / Math.PI;
function initialize() {
var center = new google.maps.LatLng(0, 0);
var mapOptions = {
zoom: 3,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
// DOM event listener for the center map form submit
google.maps.event.addDomListener(document.getElementById('mapCenterForm'), 'submit', function (e) {
e.preventDefault();
// Get lat and lng values from input fields
var lat = document.getElementById('lat').value;
var lng = document.getElementById('lng').value;
// Validate user input as numbers
lat = (!isNumber(lat) ? 0 : lat);
lng = (!isNumber(lng) ? 0 : lng);
// Validate user input as valid lat/lng values
lat = latRange(lat);
lng = lngRange(lng);
// Replace input values
document.getElementById('lat').value = lat;
document.getElementById('lng').value = lng;
// Create LatLng object
var mapCenter = new google.maps.LatLng(lat, lng);
new google.maps.Marker({
position: mapCenter,
title: 'Marker title',
map: map
});
// Center map
map.setCenter(mapCenter);
});
}
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function latRange(n) {
return Math.min(Math.max(parseInt(n), -maxLat), maxLat);
}
function lngRange(n) {
return Math.min(Math.max(parseInt(n), -180), 180);
}
initialize();