Javascript 谷歌地图如何只显示一个标记?
我已经处理这几个小时了,我仍然不知道怎么做 我的目标是在搜索彼此接近的地址时只显示一个标记 下面是我在html中搜索地址时使用的代码,请注意-我正在开发一个windows应用程序来执行此操作,在这种情况下,您可能会通过单击按钮找到一些缺少的操作,因为这是通过.NET windows应用程序完成的 html代码Javascript 谷歌地图如何只显示一个标记?,javascript,vb.net,visual-studio,google-maps,windows-applications,Javascript,Vb.net,Visual Studio,Google Maps,Windows Applications,我已经处理这几个小时了,我仍然不知道怎么做 我的目标是在搜索彼此接近的地址时只显示一个标记 下面是我在html中搜索地址时使用的代码,请注意-我正在开发一个windows应用程序来执行此操作,在这种情况下,您可能会通过单击按钮找到一些缺少的操作,因为这是通过.NET windows应用程序完成的 html代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">
var G = google.maps;
var map;
var geocoder = new G.Geocoder();
var marker;
var markersArray = [1];
function initialize() {
createMap();
geocode('Chicago');
}
function createMap() {
var myOptions = {
center: new G.LatLng(0,0),
zoom: 17,
mapTypeId: G.MapTypeId.ROADMAP
}
map = new G.Map(document.getElementById("map_canvas"), myOptions);
}
function geocode(address){
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Florida")}, function (results, status) {
if (status == G.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
marker = new G.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
var G=google.maps;
var映射;
var geocoder=新的G.geocoder();
var标记;
var-markersArray=[1];
函数初始化(){
createMap();
地理编码(“芝加哥”);
}
函数createMap(){
变量myOptions={
中心:新G.LatLng(0,0),
缩放:17,
mapTypeId:G.mapTypeId.ROADMAP
}
map=newg.map(document.getElementById(“map\u canvas”),myOptions;
}
功能地理编码(地址){
地理编码({‘地址’:(地址?地址:“佛罗里达州迈阿密海滩”)},功能(结果、状态){
如果(状态==G.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
标记器=新的G.标记器({
地图:地图,
动画:google.maps.animation.DROP,
位置:结果[0]。几何体。位置
});
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
阅读之前的文章,我知道if/else语句必须使用,但不能正确使用
非常感谢你的帮助
Leo p.您可以在地理编码函数的开头添加一小段代码,在设置新标记之前删除以前的标记。试试这个:
function geocode(address){
if (marker) {
marker.setMap(null);
}
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Florida")}, function (results, status) {
您可以在Geocode函数的开头添加一小段代码,在设置新标记之前删除以前的标记。试试这个:
function geocode(address){
if (marker) {
marker.setMap(null);
}
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Florida")}, function (results, status) {
仅创建一个标记作为全局变量,并根据需要更改其位置。这样还可以节省内存,因为您没有在每个请求上创建新的标记对象:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style>
html, body {width:100%; height:100%}
</style>
<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">
var G = google.maps;
var map;
var marker;
var geocoder = new G.Geocoder();
function initialize() {
createMap();
geocode('Chicago');
}
function createMap() {
var myOptions = {
center: new G.LatLng(0,0),
zoom: 17,
mapTypeId: G.MapTypeId.ROADMAP
}
map = new G.Map(document.getElementById("map_canvas"), myOptions);
// Create a single marker, (global variable), and don't give it a position just yet.
marker = new G.Marker({
map: map,
animation: google.maps.Animation.DROP,
});
}
function geocode(address){
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Florida")}, function (results, status) {
if (status == G.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
//Position the marker
marker.setPosition(results[0].geometry.location);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
html,正文{宽度:100%;高度:100%}
var G=google.maps;
var映射;
var标记;
var geocoder=新的G.geocoder();
函数初始化(){
createMap();
地理编码(“芝加哥”);
}
函数createMap(){
变量myOptions={
中心:新G.LatLng(0,0),
缩放:17,
mapTypeId:G.mapTypeId.ROADMAP
}
map=newg.map(document.getElementById(“map\u canvas”),myOptions;
//创建一个标记(全局变量),不要给它一个位置。
标记器=新的G.标记器({
地图:地图,
动画:google.maps.animation.DROP,
});
}
功能地理编码(地址){
地理编码({‘地址’:(地址?地址:“佛罗里达州迈阿密海滩”)},功能(结果、状态){
如果(状态==G.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
//定位标记
marker.setPosition(结果[0].geometry.location);
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
仅创建一个标记作为全局变量,并根据需要更改其位置。这样还可以节省内存,因为您没有在每个请求上创建新的标记对象:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style>
html, body {width:100%; height:100%}
</style>
<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">
var G = google.maps;
var map;
var marker;
var geocoder = new G.Geocoder();
function initialize() {
createMap();
geocode('Chicago');
}
function createMap() {
var myOptions = {
center: new G.LatLng(0,0),
zoom: 17,
mapTypeId: G.MapTypeId.ROADMAP
}
map = new G.Map(document.getElementById("map_canvas"), myOptions);
// Create a single marker, (global variable), and don't give it a position just yet.
marker = new G.Marker({
map: map,
animation: google.maps.Animation.DROP,
});
}
function geocode(address){
geocoder.geocode({ 'address': (address ? address : "Miami Beach, Florida")}, function (results, status) {
if (status == G.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
//Position the marker
marker.setPosition(results[0].geometry.location);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
html,正文{宽度:100%;高度:100%}
var G=google.maps;
var映射;
var标记;
var geocoder=新的G.geocoder();
函数初始化(){
createMap();
地理编码(“芝加哥”);
}
函数createMap(){
变量myOptions={
中心:新G.LatLng(0,0),
缩放:17,
mapTypeId:G.mapTypeId.ROADMAP
}
map=newg.map(document.getElementById(“map\u canvas”),myOptions;
//创建一个标记(全局变量),不要给它一个位置。
标记器=新的G.标记器({
地图:地图,
动画:google.maps.animation.DROP,
});
}
功能地理编码(地址){
地理编码({‘地址’:(地址?地址:“佛罗里达州迈阿密海滩”)},功能(结果、状态){
如果(状态==G.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
//定位标记
marker.setPosition(结果[0].geometry.location);
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
Google Voice(标题中)与此有什么关系?我的错误,我在想一封来自Google Voice的语音邮件,我会纠正它。谢谢你指出这一点。谷歌语音(标题中)与此有什么关系?我的错误,我在想一封来自谷歌语音的语音邮件,我会纠正它。谢谢你指出这一点。