Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Google Maps || Random Maps (http://www.flasher.ru/forum/showthread.php?t=185553)

AlexCooper 15.10.2012 13:40

Google Maps || Random Maps
 
Здравствуйте коллеги.
Кто работал с гугл-картами, масштабирую своё приложение под разные соц. сети. Ключ естественно регистрировал только под один домен, так как гугл приостановил раздачу ключей под Flash и отказался от него ищу достойную альтернативу. Подскажите на опен-сёрсные, может быть не дорогие АПИ карт с поддержкой АС3, желательно мультиязычную.

olexandr 15.10.2012 18:39

можно грузить тайлы карт из OpenStreetMaps
правда придеться на зума самому считать количество доступных тайлов, потом текущие координаты переводить в адреса тайлов

Добавлено через 4 минуты
Код AS3:

                /**
                * Преобразование координат меркатора в геокоординаты
                * @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;
                }

Добавлено через 5 минут
Ну и собственно, сам шаблон URL - http://b.tile.openstreetmap.org/[z]/[x]/[y].png

vikvik 09.04.2015 17:10

Поделитесь проектом :) С нуля писать так неохота.

Simplifier 10.04.2015 10:20

Эти карты неплохи: http://developer.mapquest.com/web/pr...as3-flex-flash


Часовой пояс GMT +4, время: 18:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.