admin管理员组文章数量:1335847
this is my code :
function getRandom_marker(bounds) {
var leftBottom=[bounds.getSouthWest().lat(),bounds.getSouthWest().lng()]
var rightTop=[bounds.getNorthEast().lat(),bounds.getNorthEast().lng()]
var latlng=[leftBottom[0]+Math.floor(Math.random() * (rightTop[0]-leftBottom[0])),
leftBottom[1]+Math.floor(Math.random() * (rightTop[1]-leftBottom[1]))]
return latlng
}
i use this code to Generate a random , but sometimes, the marker is not in the map bounds,
so , what's wrong with my code ?
thanks
updated:
this is the code has Math.abs :
/
and this is not has:
/
this is my code :
function getRandom_marker(bounds) {
var leftBottom=[bounds.getSouthWest().lat(),bounds.getSouthWest().lng()]
var rightTop=[bounds.getNorthEast().lat(),bounds.getNorthEast().lng()]
var latlng=[leftBottom[0]+Math.floor(Math.random() * (rightTop[0]-leftBottom[0])),
leftBottom[1]+Math.floor(Math.random() * (rightTop[1]-leftBottom[1]))]
return latlng
}
i use this code to Generate a random , but sometimes, the marker is not in the map bounds,
so , what's wrong with my code ?
thanks
updated:
this is the code has Math.abs :
http://jsfiddle/PNYCf/1/
and this is not has:
http://jsfiddle/pRjBr/
Share Improve this question edited Sep 6, 2010 at 2:30 zjm1126 asked Sep 6, 2010 at 1:49 zjm1126zjm1126 35.7k53 gold badges125 silver badges167 bronze badges1 Answer
Reset to default 9You may want to try the following:
function getRandom_marker(bounds) {
var lat_min = bounds.getSouthWest().lat(),
lat_range = bounds.getNorthEast().lat() - lat_min,
lng_min = bounds.getSouthWest().lng(),
lng_range = bounds.getNorthEast().lng() - lng_min;
return new google.maps.LatLng(lat_min + (Math.random() * lat_range),
lng_min + (Math.random() * lng_range));
}
Complete example:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Random Points Demo</title>
<script src="http://maps.google./maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 400px; height: 300px;"></div>
<script type="text/javascript">
function getRandom_marker(bounds) {
var lat_min = bounds.getSouthWest().lat(),
lat_range = bounds.getNorthEast().lat() - lat_min,
lng_min = bounds.getSouthWest().lng(),
lng_range = bounds.getNorthEast().lng() - lng_min;
return new google.maps.LatLng(lat_min + (Math.random() * lat_range),
lng_min + (Math.random() * lng_range));
}
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'tilesloaded', function () {
var mapBounds = map.getBounds();
for (var i = 0; i < 20; i++) {
new google.maps.Marker({
position: getRandom_marker(mapBounds),
map: map
});
}
});
</script>
</body>
Screenshot:
本文标签: javascriptRandom marker within a rectangular boundsStack Overflow
版权声明:本文标题:javascript - Random marker within a rectangular bounds? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742387990a2465421.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论