Вот принятая реализация ответа, портированная на Java, на случай, если кому-то это понадобится.
package com.project529.garage.util;
/**
* Mean radius.
*/
private static double EARTH_RADIUS = 6371;
/**
* Returns the distance between two sets of latitudes and longitudes in meters.
* <p/>
* Based from the following JavaScript SO answer:
* http://stackoverflow.com/questions/27928/calculate-distance-between-two-latitude-longitude-points-haversine-formula,
* which is based on https://en.wikipedia.org/wiki/Haversine_formula (error rate: ~0.55%).
*/
public double getDistanceBetween(double lat1, double lon1, double lat2, double lon2) {
double dLat = toRadians(lat2 - lat1);
double dLon = toRadians(lon2 - lon1);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = EARTH_RADIUS * c;
return d;
}
public double toRadians(double degrees) {
return degrees * (Math.PI / 180);
}
Вам нужно указать plone.recipe.zope2install, где скачать Zope. Также вам понадобится раздел zope2instance, чтобы создать для вас экземпляр Zope. Эти рецепты необходимы только для Zope до версии 2.11, так как с 2.12 Zope полностью переработан.
Вот минимальный файл buildout.cfg для Zope 2.11:
[buildout]
parts = instance
[zope2]
recipe = plone.recipe.zope2install
url = http://www.zope.org/Products/Zope/2.11.3/Zope-2.11.3-final.tgz
[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:admin
http-address = 127.0.0.1:8080
Обратите внимание, что часть экземпляра
включается часть zope2
автоматически, поскольку это зависит от информации, предоставленной этой частью.
Начиная с Zope 2.12, установка полностью основана на яйце. Следующий пример buildout.cfg - это все, что вам нужно для установки последней бета-версии:
[buildout]
parts = scripts
extends = http://svn.zope.org/*checkout*/Zope/tags/2.12.0b3/versions.cfg
[versions]
Zope2 = 2.12.0b3
[scripts]
recipe = zc.recipe.egg:scripts
eggs = Zope2
Обратите внимание на расширение; он извлекает список версий для всех зависимостей яиц Zope2 из тега подверсии Zope для 2.12.0b3, чтобы убедиться, что вы получаете стабильную комбинацию яиц.