本文整理汇总了PHP中CRM_Contact_BAO_Contact::getMapInfo方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_BAO_Contact::getMapInfo方法的具体用法?PHP CRM_Contact_BAO_Contact::getMapInfo怎么用?PHP CRM_Contact_BAO_Contact::getMapInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_BAO_Contact
的用法示例。
在下文中一共展示了CRM_Contact_BAO_Contact::getMapInfo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createLocation
/**
* assign smarty variables to the template that will be used by google api to plot the contacts
*
* @param array $contactIds list of contact ids that we need to plot
* @param int $locationId location_id
*
* @return string the location of the file we have created
* @access protected
*/
function createLocation($contactIds, $locationId = null)
{
$config =& CRM_Core_Config::singleton();
$this->assign('query', 'CiviCRM Search Query');
$this->assign('mapProvider', $config->mapProvider);
$this->assign('mapKey', $config->mapAPIKey);
require_once 'CRM/Contact/BAO/Contact.php';
$locations =& CRM_Contact_BAO_Contact::getMapInfo($this->_contactIds, $locationId);
if (empty($locations)) {
CRM_Utils_System::statusBounce(ts('This contact\'s primary address does not contain latitude/longitude information and can not be mapped.'));
} else {
$session =& CRM_Core_Session::singleton();
$redirect = $session->readUserContext();
$additionalBreadCrumb = "<a href=\"{$redirect}\">" . ts('Search Results') . '</a>';
CRM_Utils_System::appendBreadCrumb($additionalBreadCrumb);
}
$this->assign_by_ref('locations', $locations);
$sumLat = $sumLng = 0;
$maxLat = $maxLng = -400;
$minLat = $minLng = +400;
foreach ($locations as $location) {
$sumLat += $location['lat'];
$sumLng += $location['lng'];
if ($location['lat'] > $maxLat) {
$maxLat = $location['lat'];
}
if ($location['lat'] < $minLat) {
$minLat = $location['lat'];
}
if ($location['lng'] > $maxLng) {
$maxLng = $location['lng'];
}
if ($location['lng'] < $minLng) {
$minLng = $location['lng'];
}
}
$center = array('lat' => (double) $sumLat / count($locations), 'lng' => (double) $sumLng / count($locations));
$span = array('lat' => (double) ($maxLat - $minLat), 'lng' => (double) ($maxLng - $minLng));
$this->assign_by_ref('center', $center);
$this->assign_by_ref('span', $span);
}