|
|
|||||
Google Maps || Random Maps
Здравствуйте коллеги.
Кто работал с гугл-картами, масштабирую своё приложение под разные соц. сети. Ключ естественно регистрировал только под один домен, так как гугл приостановил раздачу ключей под Flash и отказался от него ищу достойную альтернативу. Подскажите на опен-сёрсные, может быть не дорогие АПИ карт с поддержкой АС3, желательно мультиязычную.
__________________
return this... |
|
|||||
можно грузить тайлы карт из OpenStreetMaps
правда придеться на зума самому считать количество доступных тайлов, потом текущие координаты переводить в адреса тайлов Добавлено через 4 минуты /** * Преобразование координат меркатора в геокоординаты * @param mp координаты меркатора * @param z масштаб * @return геокоординаты */ public static function getGeoFromMercator(mp:MercatorPosition, z:int):GeoPosition { var _mp:MercatorParams = getMercatorParams(z); var _lat:Number = Math.atan(sinh((_mp.width / 2 - mp.y) / _mp.c / 180 * Math.PI)) / Math.PI * 180; var _lon:Number = (mp.x - _mp.width / 2) / _mp.c; return new GeoPosition(_lat, _lon); } /** * Преобразование геокоординат в координаты меркатора * @param gp геокоординаты * @param z масштаб * @return координаты меркатора */ public static function getMercatorFromGeo(gp:GeoPosition, z:int):MercatorPosition { var _point:Point = getPointFromGeo(gp, z); return new MercatorPosition(_point.x, _point.y); } /** * Преобразование геокоординат в точку с дробными координатами * @param gp геокоординаты * @param z масштаб * @return точка с дробными координатами */ public static function getPointFromGeo(gp:GeoPosition, z:int):Point { //if (_lat == 90 || _lat == 0 || _lon == 180 || _lon == 0) //return new MercatorPosition(0, 0); //if (_lon > 5 && _lon < 175) //if (_lat > 5 && _lat < 85) var _lat:Number = gp.latitude; var _lon:Number = gp.longitude; var _mp:MercatorParams = getMercatorParams(z); var _x:Number = _mp.width / 2 + (_lon * _mp.c); var _y:Number = _mp.width / 2 - (Math.log(Math.tan(Math.PI / 4 + _lat / 180 * Math.PI / 2))) * 180 / Math.PI * _mp.c; return new Point(_x, _y); } /** * Получение параметров С и W для данного масштаба * @param z масштаб * @return параметры С и W */ public static function getMercatorParams(z:int):MercatorParams { var _w:int = getTilesWidth(z); var _c:Number = _w / 360; return new MercatorParams(_c, _w); } /** * Получение максимальной ширины тайлов в одной стороне для заданного масштаба * @param z масштаб * @return количество тайлов */ public static function getTilesWidth(z:int):int { return getTilesCount(z) * 256; } /** * Получение количества тайлов в одной стороне для заданного масштаба * @param z масштаб * @return количество тайлов */ public static function getTilesCount(z:int):int { return 1 << z; } Ну и собственно, сам шаблон URL - http://b.tile.openstreetmap.org/[z]/[x]/[y].png |
|
|||||
[+3 09.03.07]
Регистрация: Jul 2006
Сообщений: 21
|
Поделитесь проектом С нуля писать так неохота.
|
|
|||||
Регистрация: Jun 2011
Сообщений: 60
|
Эти карты неплохи: http://developer.mapquest.com/web/pr...as3-flex-flash
|
Часовой пояс GMT +4, время: 01:06. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|