Javascript 谷歌地图v3“;“如何在地图中单击创建标记”;
我需要在地图中单击创建标记,谢谢:) v3地理编码结果 html,正文 { 身高:100% }Javascript 谷歌地图v3“;“如何在地图中单击创建标记”;,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我需要在地图中单击创建标记,谢谢:) v3地理编码结果 html,正文 { 身高:100% } #地图 { 宽度:100%; 高度:512px; } var renderGeolocalizacion=函数() { var地理编码器,map,markersArray=[] var __construct = function() { var w_o; if(typeof(window.onload)=='function'
#地图 { 宽度:100%; 高度:512px; }
var renderGeolocalizacion=函数() { var地理编码器,map,markersArray=[]
var __construct = function()
{
var w_o;
if(typeof(window.onload)=='function')
w_o = window.onload;
window.onload = function()
{
if(typeof(w_o)=='function')
w_o();
var mapOpts =
{
zoom: 8,
center: new google.maps.LatLng(43.2569629,-2.9234409),
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true
}
maps.Map(document.getElementById("map"), mapOpts);
google.maps.event.addListener(map, 'zoom_changed', function()
{
document.getElementById('zoom').value = map.getZoom();
});
google.maps.event.addListener(map, 'click', function(e)
{
clearOverlays();
var marker = new google.maps.Marker(
{
position: e.latLng,
map: map,
draggable: true
});
markersArray[0] = marker;
var position = marker.getPosition();
geocode(marker.getPosition().b+", "+marker.getPosition().c, true);
});
/**
* geocoder
*/
geocoder = new google.maps.Geocoder();
document.getElementById('geolocation').onsubmit = function()
{
clearOverlays();
geocode(document.getElementById('search-field').value);
return false;
};
};
};
var in_array = function(value, array, strict)
{
for(var i in array)
if(strict)
if(array[i]===value)
return true;
else
if(array[i]==value)
return true;
return false;
};
var clearOverlays = function()
{
if (markersArray)
for (i in markersArray)
markersArray[i].setMap(null);
};
var geocode = function(addr, mark)
{
geocoder.geocode(
{
'address': addr,
'language': 'ES',
'region': 'ES'
}, geocodeResult);
};
var geocodeResult = function(response, status)
{
if (status == google.maps.GeocoderStatus.OK && response[0])
{
clearOverlays();
response = response[0];
map.setCenter(response.geometry.location);
var marker = new google.maps.Marker(
{
map: map,
position: response.geometry.location,
draggable: true
});
google.maps.event.addListener(marker, 'mouseup', function(event)
{
var position = marker.getPosition();
geocode(marker.getPosition().b+", "+marker.getPosition().c);
});
markersArray[0] = marker;
getInfo(response);
}
};
var getInfo = function(response)
{
var tmp = {};
var allowed_types = ['locality', 'administrative_area_level_2', 'administrative_area_level_1', 'country', 'postal_code'];
for(var i in response.address_components)
{
var found = false;
for(var j in response.address_components[i].types)
{
if(found)
{
found=false;
continue;
}
if (in_array(response.address_components[i].types[j]), allowed_types, true)
{
found = true;
tmp[response.address_components[i].types[j]] = response.address_components[i].long_name;
console.log(response.address_components[i].types[j] + ": " + response.address_components[i].long_name);
}
}
}
document.getElementById('localidad').value = tmp.locality;
document.getElementById('provincia').value = tmp.administrative_area_level_2;
document.getElementById('comunidad').value = tmp.administrative_area_level_1;
document.getElementById('pais').value = tmp.country;
document.getElementById('codigo_postal').value = tmp.postal_code;
document.getElementById('longitud').value = response.geometry.location.c;
document.getElementById('latitud').value = response.geometry.location.b;
document.getElementById('zoom').value = map.getZoom();
};
__construct();
};
new renderGeolocalizacion();
//-->
</script>
</head>
<body>
<div>
<form id="geolocation">
<label for="search-field">Search field</label><input type="text" size="40" id="search-field" name="search-field" title="Placename or address"/>
<input type="submit" value="Search" title="Or hit [Enter] on keyboard"/>
<input type="hidden" id="localidad" name="localidad" value="" />
<input type="hidden" id="provincia" name="provincia" value="" />
<input type="hidden" id="comunidad" name="comunidad" value="" />
<input type="hidden" id="pais" name="pais" value="" />
<input type="hidden" id="codigo_postal" name="codigo_postal" value="" />
<input type="hidden" id="longitud" name="longitud" value="" />
<input type="hidden" id="latitud" name="latitud" value="" />
<input type="hidden" id="zoom" name="zoom" value="" />
</form>
</div>
<div id="map">
</div>
</body>
var\uuuu construct=function()
{
var w_o;
if(typeof(window.onload)=='function')
w_o=窗口加载;
window.onload=函数()
{
if(类型of(w_o)=“函数”)
w_o();
var mapOpts=
{
缩放:8,
中心:新google.maps.LatLng(43.2569629,-2.9234409),
mapTypeId:google.maps.mapTypeId.ROADMAP,
scaleControl:对
}
Map.Map(document.getElementById(“Map”)、mapOpts);
google.maps.event.addListener(映射'zoom_changed',函数()
{
document.getElementById('zoom')。value=map.getZoom();
});
google.maps.event.addListener(映射,'click',函数(e)
{
clearOverlays();
var marker=new google.maps.marker(
{
职位:e.latLng,
地图:地图,
德拉格布尔:是的
});
markersArray[0]=标记器;
var position=marker.getPosition();
地理编码(marker.getPosition().b+,“+marker.getPosition().c,true);
});
/**
*地理编码器
*/
geocoder=新的google.maps.geocoder();
document.getElementById('geolocation')。onsubmit=function()
{
clearOverlays();
地理编码(document.getElementById('search-field')。值);
返回false;
};
};
};
数组中的变量=函数(值、数组、严格)
{
for(数组中的变量i)
如果(严格)
if(数组[i]==值)
返回true;
其他的
if(数组[i]==值)
返回true;
返回false;
};
var clearOverlays=函数()
{
if(markersArray)
for(markersArray中的i)
markersArray[i].setMap(空);
};
变量地理编码=功能(地址、标记)
{
地理编码(
{
“地址”:地址,
“语言”:“ES”,
“区域”:“ES”
},地理编码结果);
};
var geocodeResult=函数(响应、状态)
{
if(status==google.maps.GeocoderStatus.OK&&response[0])
{
clearOverlays();
响应=响应[0];
地图设置中心(响应、几何、位置);
var marker=new google.maps.marker(
{
地图:地图,
位置:response.geometry.location,
德拉格布尔:是的
});
google.maps.event.addListener(标记'mouseup',函数(事件)
{
var position=marker.getPosition();
地理编码(marker.getPosition().b+,“+marker.getPosition().c);
});
markersArray[0]=标记器;
getInfo(响应);
}
};
var getInfo=函数(响应)
{
var tmp={};
允许的变量类型=[“地区”、“行政区”级别“2”、“行政区”级别“1”、“国家”、“邮政编码”];
for(响应中的var i.address\u组件)
{
var=false;
for(响应中的var j.address_components[i].types)
{
如果(找到)
{
发现=错误;
继续;
}
if(在数组中(response.address\u components[i].types[j]),允许的\u类型,true)
{
发现=真;
tmp[response.address\u components[i].types[j]]=response.address\u components[i].long\u name;
log(response.address\u components[i].类型[j]+“:”+response.address\u components[i].长名称);
}
}
}
document.getElementById('localidad')。value=tmp.locality;
document.getElementById('provincia')。value=tmp.administration\u area\u level\u 2;
document.getElementById(
var marker;
google.maps.event.addListener(map, 'click', function(e) {
if ( !marker ) {
marker = new google.maps.Marker({ map: map });
}
marker.setPosition(e.latLng);
});
var __construct = function()
{
var w_o;
if(typeof(window.onload)=='function')
w_o = window.onload;
window.onload = function()
{
if(typeof(w_o)=='function')
w_o();
var mapOpts =
{
zoom: 8,
center: new google.maps.LatLng(43.2569629,-2.9234409),
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true
}
maps.Map(document.getElementById("map"), mapOpts);
google.maps.event.addListener(map, 'zoom_changed', function()
{
document.getElementById('zoom').value = map.getZoom();
});
google.maps.event.addListener(map, 'click', function(e)
{
clearOverlays();
var marker = new google.maps.Marker(
{
position: e.latLng,
map: map,
draggable: true
});
markersArray[0] = marker;
var position = marker.getPosition();
geocode(marker.getPosition().b+", "+marker.getPosition().c, true);
});
/**
* geocoder
*/
geocoder = new google.maps.Geocoder();
document.getElementById('geolocation').onsubmit = function()
{
clearOverlays();
geocode(document.getElementById('search-field').value);
return false;
};
};
};
var in_array = function(value, array, strict)
{
for(var i in array)
if(strict)
if(array[i]===value)
return true;
else
if(array[i]==value)
return true;
return false;
};
var clearOverlays = function()
{
if (markersArray)
for (i in markersArray)
markersArray[i].setMap(null);
};
var geocode = function(addr, mark)
{
geocoder.geocode(
{
'address': addr,
'language': 'ES',
'region': 'ES'
}, geocodeResult);
};
var geocodeResult = function(response, status)
{
if (status == google.maps.GeocoderStatus.OK && response[0])
{
clearOverlays();
response = response[0];
map.setCenter(response.geometry.location);
var marker = new google.maps.Marker(
{
map: map,
position: response.geometry.location,
draggable: true
});
google.maps.event.addListener(marker, 'mouseup', function(event)
{
var position = marker.getPosition();
geocode(marker.getPosition().b+", "+marker.getPosition().c);
});
markersArray[0] = marker;
getInfo(response);
}
};
var getInfo = function(response)
{
var tmp = {};
var allowed_types = ['locality', 'administrative_area_level_2', 'administrative_area_level_1', 'country', 'postal_code'];
for(var i in response.address_components)
{
var found = false;
for(var j in response.address_components[i].types)
{
if(found)
{
found=false;
continue;
}
if (in_array(response.address_components[i].types[j]), allowed_types, true)
{
found = true;
tmp[response.address_components[i].types[j]] = response.address_components[i].long_name;
console.log(response.address_components[i].types[j] + ": " + response.address_components[i].long_name);
}
}
}
document.getElementById('localidad').value = tmp.locality;
document.getElementById('provincia').value = tmp.administrative_area_level_2;
document.getElementById('comunidad').value = tmp.administrative_area_level_1;
document.getElementById('pais').value = tmp.country;
document.getElementById('codigo_postal').value = tmp.postal_code;
document.getElementById('longitud').value = response.geometry.location.c;
document.getElementById('latitud').value = response.geometry.location.b;
document.getElementById('zoom').value = map.getZoom();
};
__construct();
};
new renderGeolocalizacion();
//-->
</script>
</head>
<body>
<div>
<form id="geolocation">
<label for="search-field">Search field</label><input type="text" size="40" id="search-field" name="search-field" title="Placename or address"/>
<input type="submit" value="Search" title="Or hit [Enter] on keyboard"/>
<input type="hidden" id="localidad" name="localidad" value="" />
<input type="hidden" id="provincia" name="provincia" value="" />
<input type="hidden" id="comunidad" name="comunidad" value="" />
<input type="hidden" id="pais" name="pais" value="" />
<input type="hidden" id="codigo_postal" name="codigo_postal" value="" />
<input type="hidden" id="longitud" name="longitud" value="" />
<input type="hidden" id="latitud" name="latitud" value="" />
<input type="hidden" id="zoom" name="zoom" value="" />
</form>
</div>
<div id="map">
</div>
</body>