我需要一个通用的解决方案。这是一个具体的例子。我有一个由place.address
或使用$(function() {
var places = [];
$('ul.property-list li').each(function(n) {
var street = $('ul.property-list li .property-text .street').text();
var city = $('ul.property-list li .property-text .city').text();
places.push({
price: $('ul.property-list li .price').text(),
image: $('ul.property-list li .property-image IMG').attr('src'),
address: street + ',' + city
});
});
// Google Maps API
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
$.each( places, function( n, place ) {
if (n >= 10) return false; // done
geocoder.geocode({
'address': place.address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
var infocontent =
'<div style="width:250px;overflow:hidden;">' +
'<img style="float:left;width:100px;margin-right:8px;" src="' +
place.image + '" />' +
'<div><div style="font-weight:700;font-size:20px;padding-bottom:5px;">$' +
place.price.toLocaleString() +
'</div>' + place.address +
'</div></div>';
var infowindow = new google.maps.InfoWindow({
content: infocontent
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
if (n == 0) {
map.setCenter(results[0].geometry.location);
}
});
});
map = new google.maps.Map(document.getElementById('map2'), mapOptions);
var mapOptions = {
zoom: 14,
}
}
initialize();
});
d="M239.9,254.0A113.7,113.7,0,0,0,322.5,289.7L322.4,341.9A166,166,0,0,1,201.8,289.9Z"
是内弧的终点,由于r1 = r2 = 113.7,它是一个圆。由于其larc = 0,两点之间的角度小于180度。扫描= 0表示逆时针绘制弧。
M x0 y0 A r1 r2 0 larc sweep x1 y1 L x2 y2 A r3 r4 0 larc sweep x3 y3
是外弧的终点,因为r3 = r4 = 166,它也是一个圆。由于其larc = 0,两点之间的角度小于180度。扫描= 1表示顺时针绘制弧。
我可以计算两个端点的中点,例如
x0=239.9 y0=254.0
x1=322.5 y1=289.7
但是任何舍入错误都可能将该点放在甜甜圈细分之外。
我知道如何计算每个弧的中点,我可以计算两个弧中点之间的中点,但这是很多方程。有更简单的方法吗?我只需要在甜甜圈内点一点。请记住,larc(大弧)可能= 1,因此角度可能大于180。