JS:
function initialize() {
$('#refreshmap').on('click', initialize);
var location_latitude = $("#id_location_latitude").val()
var location_longitude = $("#id_location_longitude").val()
""""""""""""""
some code here
"""""""""""""
$(document).ready(function(){
function codeAddress() {
var address = "{{ userprofile.work_street }},{{userprofile.work_suburb}},{{userprofile.work_postcode}},{{ userprofile.work_country }}";
alert(address);
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
$("#img-clck").click(codeAddress);
});
'''''''
some code
''''''''''
google.maps.event.addDomListener(window, 'load', initialize);
更新
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var geocoder = new google.maps.Geocoder();
function geocodePosition(pos) {
geocoder.geocode({
latLng: pos
}, function(responses) {
if (responses && responses.length > 0) {
}
});
}
function updateMarkerPosition(latLng) {
document.getElementById('id_location_latitude').value = latLng.lat();
document.getElementById('id_location_longitude').value = latLng.lng();
}
function initialize() {
$('#refreshmap').on('click', initialize);
var location_latitude = $("#id_location_latitude").val()
var location_longitude = $("#id_location_longitude").val()
if(location_latitude){
var latLng = new google.maps.LatLng(location_latitude, location_longitude);
}else{
var latLng = new google.maps.LatLng(-37.813988, 144.963441);
}
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 8,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
$(document).ready(function(){
var address = "{{ userprofile.work_street }},{{userprofile.work_suburb}},{{userprofile.work_postcode}},{{ userprofile.work_country }}";
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
$("#img-clck").hide();
}
});
});
var marker = new google.maps.Marker({
position: latLng,
title: 'Position',
map: map,
draggable: true,
visible:false
});
updateMarkerPosition(latLng);
geocodePosition(latLng);
google.maps.event.addListener(marker, 'drag', function() {
updateMarkerPosition(marker.getPosition());
});
if(location_latitude){
marker.setVisible(true);
$("#img-clck").hide();
}
$('#img-clck').click(function(){
marker.setVisible(true);
$("#img-clck").hide();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
这是我在给定地址上显示标记的代码,它在按钮点击时显示给定地址上的标记。我希望它在页面加载时发生。标记应显示页面加载时的给定地址,无需单击按钮如何做到这一点。
答案 0 :(得分:1)
您正在按钮的click事件上调用codeAddress函数。相反,您应该从initialize函数调用codeAddress函数,该函数称为onload。
function initialize() {
$('#refreshmap').on('click', initialize);
var location_latitude = $("#id_location_latitude").val()
var location_longitude = $("#id_location_longitude").val()
codeAddress();
我不确定在$(document).ready中声明它是否会被调用。您可以将其作为独立函数移出,或者另一个替代方法是将其从方法中移除,即
$(document).ready(function(){
var address = "{{ userprofile.work_street }},{{userprofile.work_suburb}},{{userprofile.work_postcode}},{{ userprofile.work_country }}";
alert(address);
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
$("#img-clck").click(codeAddress);
});
这样,代码将在调用$(document).ready时直接执行。