MapBox एंड्रॉयड एसडीके का उपयोग कर बहुभुज स्ट्रोक का आकार बदलने के लिए कैसे

वोट
0

मैं एक बहुभुज MapBox एंड्रॉयड एसडीके संस्करण 4.2.0.beta4 का उपयोग कर के बाहर चारों ओर 1px स्ट्रोक की चौड़ाई बढ़ाने के लिए कोशिश कर रहा हूँ।

सबसे पहले मैं PolygonOptions उपयोग करने की कोशिश लेकिन कोई विकल्प उपलब्ध था।

public Polygon addPolygon(MapboxMap mapboxMap) {
    PolygonOptions polygonOptions = new PolygonOptions()
                    .addAll(latLngs)
                    .alpha(ALPHA_UNSELECTED)
                    .fillColor(FILL_COLOR)
                    .strokeColor(BORDER_COLOR);

    // no option for stroke width

    return mapboxMap.addPolygon(polygonOptions);
}

मैं तो नया क्रम शैली एपीआई का उपयोग कर के रूप में शैली युक्ति में परिभाषित किया गया है, लेकिन एक उपयुक्त परत आईडी नहीं मिल सका उपयोग करने की कोशिश, मैं पृष्ठभूमि की कोशिश की https://www.mapbox.com/mapbox-gl-style-spec/

public void changeStrokeWidth(MapboxMap mapboxMap) {
        Layer styleLayer = mapboxMap.getLayer(background);

        styleLayer.setProperties(PropertyFactory.lineWidth(10f));
}

किसी को भी इस काम करने के लिए कैसे या मैं बस बहुभुज व्यवहार का अनुकरण करने के शीर्ष पर पोलीलाइंस के अपने स्वयं के सेट बनाने के लिए क्या है पता है?

27/10/2016 को 03:20
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

आपके पास कुछ विकल्प यहाँ है। वर्तमान में हम बहुभुज स्ट्रोक की चौड़ाई बढ़ाने के लिए एक तरीका प्रदान नहीं है, लेकिन आप कर सकते हैं:

  1. एक पॉलीलाइन एक ही का उपयोग कर जोड़े latlngबहुभुज बनाने रों। यह अभी तक का सबसे आसान तरीका से है, लेकिन आप पर विचार करना है कि पोलीलाइंस नक्शे के शीर्ष पर जोड़ रहे हैं (कभी कभी लेबल को कवर) की है।

  2. आपका दूसरा विकल्प आप का उल्लेख पसंद करने के लिए, बहुभुज के रूप में ही ज्यामिति का उपयोग कर नक्शा करने के लिए एक linelayer जोड़ने होगा। यहाँ एक उदाहरण है कि कैसे अंक लेने के लिए और इस तरह के एक परत बनाने के लिए दिखा।

मुझे पता है आप अतिरिक्त प्रश्न हैं करते हैं।

27/10/2016 को 13:09
का स्रोत उपयोगकर्ता

वोट
0
//Hi, Guys. Below is the simple example to change the properties of polygon border. Hope it will help you.//

{

List<LatLng> plotPolygon = new ArrayList<>();

List<com.mapbox.services.commons.models.Position> coordinates  = new ArrayList<>();

                    plotPolygon.add(new LatLng(18.9965099,75.7316343));
                    plotPolygon.add(new LatLng(20.8858018,74.7288414));
                    plotPolygon.add(new LatLng(21.1612315,79.0024702));
                    plotPolygon.add(new LatLng(18.7918749,78.899195));
                    plotPolygon.add(new LatLng(18.9965099,75.7316343));

                    Polygon polygon1 = mapboxMap.addPolygon(new PolygonOptions()
                            .addAll(plotPolygon)
                    );        
                    polygon1.setFillColor(Color.parseColor("#3bb2d0"));

नीचे हम बहुभुज सीमा के निर्देशांक की एक सूची बना रहे हैं।

                    coordinates.add(com.mapbox.services.commons.models.Position.fromCoordinates(75.7316343 , 18.9965099));
                    coordinates.add(com.mapbox.services.commons.models.Position.fromCoordinates(74.7288414 , 20.8858018));
                    coordinates.add(com.mapbox.services.commons.models.Position.fromCoordinates(79.0024702 , 21.1612315));
                    coordinates.add(com.mapbox.services.commons.models.Position.fromCoordinates(78.899195 , 18.7918749));
                    coordinates.add(com.mapbox.services.commons.models.Position.fromCoordinates(75.7316343 , 18.9965099));

changeStrokeProperties(mapboxMap , coordinates);

}

public void changeStrokeProperties(MapboxMap mapboxMap , List<com.mapbox.services.commons.models.Position> coordinates) {

// Create the LineString from the list of coordinates and then make a GeoJSON//
// FeatureCollection so we can add the line to our map as a layer.//

    final Feature lineFeature =     Feature.fromGeometry(LineString.fromCoordinates(coordinates));

        final GeoJsonSource source = new GeoJsonSource(
                "route", FeatureCollection.fromFeatures(new Feature[] { lineFeature }));   


            mapboxMap.addSource(source);


            LineLayer lineLayer = new LineLayer("linelayer", "route");

            lineLayer.setProperties(
                    PropertyFactory.lineDasharray(new Float[]{0.01f, 2f}),
                    PropertyFactory.lineCap(Property.LINE_CAP_ROUND),
                    PropertyFactory.lineJoin(Property.LINE_JOIN_ROUND),
                    PropertyFactory.lineWidth(5f),
                    PropertyFactory.lineColor(Color.parseColor("#e55e5e"))

            );
            mapboxMap.addLayer(lineLayer);

    }
07/12/2017 को 03:03
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more