Получить CGContextRef NSView за пределами drawRect?

Вот простая функция javascript, которая может быть полезна из этой ссылки ... как-то связанной, но мы используем плагин google earth javascript вместо карт

function getApproximateDistanceUnits(point1, point2) {

    var xs = 0;
    var ys = 0;

    xs = point2.getX() - point1.getX();
    xs = xs * xs;

    ys = point2.getY() - point1.getY();
    ys = ys * ys;

    return Math.sqrt(xs + ys);
}

Единицы, которые являются не по расстоянию, а по соотношению относительно ваших координат. Существуют и другие вычисления, которые вы можете заменить ссылкой getApproximateDistanceUnits здесь

Затем я использую эту функцию, чтобы увидеть, находится ли широта и долгота в пределах радиуса

function isMapPlacemarkInRadius(point1, point2, radi) {
    if (point1 && point2) {
        return getApproximateDistanceUnits(point1, point2) <= radi;
    } else {
        return 0;
    }
}

Точка может быть определена как

 $.getPoint = function(lati, longi) {
        var location = {
            x: 0,
            y: 0,
            getX: function() { return location.x; },
            getY: function() { return location.y; }
        };
        location.x = lati;
        location.y = longi;

        return location;
    };

, тогда вы можете сделать свое дело, чтобы увидеть, находится ли точка в области с радиусом, скажем:

 //put it on the map if within the range of a specified radi assuming 100,000,000 units
        var iconpoint = Map.getPoint(pp.latitude, pp.longitude);
        var centerpoint = Map.getPoint(Settings.CenterLatitude, Settings.CenterLongitude);

        //approx ~200 units to show only half of the globe from the default center radius
        if (isMapPlacemarkInRadius(centerpoint, iconpoint, 120)) {
            addPlacemark(pp.latitude, pp.longitude, pp.name);
        }
        else {
            otherSidePlacemarks.push({
                latitude: pp.latitude,
                longitude: pp.longitude,
                name: pp.name
            });

        }

6
задан Maleev 16 July 2009 в 18:14
поделиться

1 ответ

Я никогда не использовал его, но думаю, что это ваш путь:

[myView lockFocus];
imageContext = (CGContextRef)[[NSGraphicsContext currentContext]
                                     graphicsPort];
... 
[myView unlockFocus];

также посмотрите на lockFocusIfCanDraw NSView

9
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: