Mengubah ukuran titik pada perkecil [tertutup]

8

Saya telah menambahkan titik pada peta seperti ini tetapi ukurannya statis.

Bagaimana cara mengubah ukuran titik zooming itu?

Peta di perkecil

masukkan deskripsi gambar di sini

bios
sumber

Jawaban:

5

The Resize , seperti @Mapperz disebutkan mungkin adalah cara untuk pergi.

Atau, jika Anda memiliki banyak poin, daripada perulangan melalui semua poin mengubah ukuran mereka, Anda bisa mengubah lapisan pointRadiusgaya di peta zoom sehingga perubahan yang terjadi pada semua fitur dalam satu panggilan. Saya tidak bisa mengatakan dengan pasti apa kinerja yang lebih baik, tetapi saya akan membayangkan mengubah gaya jika ada banyak poin.

Metode styling memiliki kelemahan seperti tidak memiliki banyak pilihan seperti yang Resize lakukan (skala, asal, rasio), itu hanya jari-jari.

Ini DEMO

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

CaptDragon
sumber
6

Ubah Ukuran Fitur Secara terprogram menggunakan Openlayers v2.12

masukkan deskripsi gambar di sini

 map.addLayer(vectorLayer);
        map.setCenter(new OpenLayers.LonLat(point.x, point.y), 5);
        vectorLayer.addFeatures([pointFeature, lineFeature, polygonFeature]);

    }

    var origin = new OpenLayers.Geometry.Point(-111.04, 45.68);
    function resizeFeatures(scale) {
        pointFeature.geometry.resize(scale, origin);
        lineFeature.geometry.resize(scale, origin);
        polygonFeature.geometry.resize(scale, origin);
        vectorLayer.redraw();
    }

http://dev.openlayers.org/releases/OpenLayers-2.12/examples/resize-features.html Lihat> Sumber

Mapperz
sumber
harap perhatikan bahwa titik warna biru dalam ukuran statis
bios
3
Anda dapat memaksa titik untuk tidak mengubah ukuran juga yang merupakan default - baca dokumentasi openlayers tentang geometri - dev.openlayers.org/docs/files/OpenLayers/Geometry/Point-js.html [ukuran adalah pilihan]
Mapperz
1

Anda bisa gaya yang menghitung titik Radius tergantung pada tingkat Zoom Peta:

        // var map = my OpenLayers.Map object
        var styleSel = new OpenLayers.Style({
            pointRadius: "${radius}",
            graphicName: "circle",
            strokeColor: "#004CFF",
            strokeWidth: 2,
            fillOpacity: 0

        }, {
            context: {
                radius: function (feature) {
                    var pix = map.getZoom() * 10; // ten time the zoo level
                    return pix;
                }
            }
        });
        var styleMapSelect = new OpenLayers.StyleMap({
        "default": styleSel
        });
        var layer= new OpenLayers.Layer.Vector("myLayer", {styleMap: styleMapSelect});
David
sumber