বিল্ডিং রূপরেখা এবং প্রবেশদ্বার

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

আপনার মানচিত্র রেন্ডারিংয়ে ডেটা ভিজ্যুয়ালাইজেশন উন্নত করতে বিল্ডিং আউটলাইন এবং প্রবেশপথ পেতে জিওকোডিং API ব্যবহার করুন।

এটি করার জন্য, আপনার জিওকোডিং অনুরোধে একটি অতিরিক্ত প্যারামিটার অন্তর্ভুক্ত করুন যাতে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক জোড়া ফেরত দেওয়া যায় যা হয় একটি ভবনের রূপরেখা, অথবা একটি প্রবেশপথ সংজ্ঞায়িত করে। আপনার অনুরোধের আউটপুট ব্যবহার করে ভবনের রূপরেখা আঁকুন এবং আপনার মানচিত্রে ভবনের প্রবেশপথগুলি নির্দেশ করুন।

  • একটি ভবনের রূপরেখা হল অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক জোড়ার একটি সেট যা একটি 2D বহুভুজকে সংজ্ঞায়িত করে যা ভবন দ্বারা আচ্ছাদিত পৃথিবীর পৃষ্ঠের ক্ষেত্রফলকে প্রতিনিধিত্ব করে।
  • একটি ভবনের প্রবেশদ্বার হল একটি একক অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক জোড়া যা একটি স্থানে প্রবেশ এবং প্রস্থান বিন্দুর অবস্থান নির্ধারণ করে।

ব্যবহার এবং কভারেজ

আপনি এই পরিষেবাটি ব্যবহার করে একটি একক অনুরোধে একটি নির্দিষ্ট স্থানের জন্য বহুভুজের রূপরেখা ফেরত দিতে পারেন। এর অর্থ হল, লন্ডন, যুক্তরাজ্যের মতো শহর-স্তরের জিওকোডের জন্য অনুরোধ, সেই এলাকার সমস্ত ভবনের রূপরেখা ফেরত দেয় না। এই ধরনের ক্ষেত্রে, পরিষেবাটি কোনও ভবনের রূপরেখা বা প্রবেশপথ ছাড়াই একটি আদর্শ জিওকোডিং প্রতিক্রিয়া ফেরত দেবে। বিশেষ করে, পরিষেবাটি শুধুমাত্র নিম্নলিখিত স্থানের ধরণের জন্য রূপরেখা এবং প্রবেশপথ তৈরি করে:

সমর্থিত স্থানের ধরণ

ভবন

প্রবেশদ্বার

premise

premise

subpremise

subpremise

point_of_interest

point_of_interest

street_address

যদিও এই বৈশিষ্ট্যটি সমস্ত অঞ্চলে ব্যবহারের জন্য উপলব্ধ, অঞ্চল অনুসারে কভারেজ পরিবর্তিত হয়। তদুপরি, আপনার এমন API প্রতিক্রিয়া পাওয়ার আশা করা উচিত যাতে একটি বিল্ডিং রূপরেখা থাকবে, কিন্তু কোনও প্রবেশ ডেটা থাকবে না। এই ক্ষেত্রে, পরিষেবাটি একটি বিল্ডিং রূপরেখা সহ একটি জিওকোডিং প্রতিক্রিয়া দেবে, কিন্তু কোনও প্রবেশ ডেটা অ্যারে থাকবে না। পরিষেবাটি প্রবেশ কভারেজ উন্নত করার জন্য ক্রমাগত কাজ করে।

অনুরোধের বিশদ বিবরণ

আপনি নিম্নলিখিত ধরণের অনুরোধের মাধ্যমে ভবনের রূপরেখা এবং প্রবেশ স্থানাঙ্ক পেতে পারেন:

এই অনুরোধগুলির যেকোনো একটির জন্য, আপনাকে এই প্যারামিটারটি সরবরাহ করতে হবে: extra_computations=BUILDING_AND_ENTRANCES

উদাহরণ অনুরোধ

নিম্নলিখিত কোয়েরিতে ক্যালিফোর্নিয়ার মাউন্টেন ভিউতে অবস্থিত একটি রেস্তোরাঁর প্রবেশপথ এবং রূপরেখার তথ্য পেতে স্থানের জিওকোডিং ব্যবহার করা হয়েছে:

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJl2tj2-62j4ARzKWl1WCXLJI&extra_computations=BUILDING_AND_ENTRANCES&key=YOUR_API_KEY

উদাহরণ প্রতিক্রিয়া

বেশিরভাগ ক্ষেত্রে, প্রতিক্রিয়াটি ভবনের পরিচিত প্রবেশপথগুলির সাথে একটি একক ভবন ফেরত দেয়। তবে কিছু ক্ষেত্রে, প্রতিক্রিয়াটিতে একাধিক ভবন থাকতে পারে, যেমন একাধিক ভবন দখল করে এমন আকর্ষণীয় স্থান। ভবন এবং প্রবেশপথগুলি নিম্নলিখিত দুটি অ্যারে দিয়ে উপস্থাপন করা হয়েছে:

এক বা একাধিক ভবন সহ একটি buildings[] অ্যারে। প্রতিটি ভবনে নিম্নলিখিত ক্ষেত্রগুলি থাকে:

  • place_id

    ভবনের অনন্য শনাক্তকারী। আরও বিস্তারিত জানার জন্য স্থান আইডিগুলির ওভারভিউ দেখুন।

  • building_outlines[]

    ভবনের সাথে সম্পর্কিত রূপরেখার একটি অ্যারে। এই অ্যারেতে কেবল একটি এন্ট্রি রয়েছে। building_outlines[] এর প্রতিটি বস্তুর নিম্নলিখিত ক্ষেত্র রয়েছে:

    • display_polygon

    RFC 7946 ফর্ম্যাট ব্যবহার করে, ভবন দ্বারা আচ্ছাদিত পৃথিবীর পৃষ্ঠের ক্ষেত্রফলের আনুমানিক বহুভুজের GeoJSON এনকোডিং

নিম্নলিখিত ক্ষেত্রগুলি সহ একটি entrances[] অ্যারে:

  • location

    প্রবেশদ্বারের অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক।

  • building_place_id

    buildings[] স্থান আইডি যেখানে এই প্রবেশদ্বারটি রয়েছে। এটি আপনাকে সনাক্ত করতে দেয় কোন ভবনে কোন প্রবেশদ্বার রয়েছে। এই প্রবেশদ্বারটি buildings[] সূচক i এর সাথে সঙ্গতিপূর্ণ যেখানে buildings[i].place_id এই প্রবেশদ্বারের building_place_id এর সমান। দ্রষ্টব্য: জিওকোড ফলাফলের স্থান আইডি থেকে এই মানটি আলাদা, যদি না জিওকোড ফলাফলটি নিজেই ভবনের জন্য হয়। এই প্যারামিটারটি সর্বদা পূরণ করা হবে না।

  • entrance_tags[]

    প্রবেশপথের বৈশিষ্ট্য বর্ণনা করে এমন প্রবেশপথ ট্যাগের একটি অ্যারে। নিম্নলিখিত মানটি সমর্থিত:

    • "PREFERRED"

      ইঙ্গিত দেয় যে এই প্রবেশদ্বারটি সম্ভবত ফেরত দেওয়া জায়গায় ভৌত প্রবেশাধিকার প্রদান করে। একটি জায়গায় একাধিক পছন্দের প্রবেশপথ থাকতে পারে। যদি একটি প্রবেশপথে এই ট্যাগ না থাকে, তাহলে এর অর্থ হল প্রবেশদ্বারটি ভৌতভাবে একই ভবনে অবস্থিত, কিন্তু অগত্যা স্থানটিতে প্রবেশাধিকার প্রদান করে না।

      উদাহরণস্বরূপ, যদি ফেরত দেওয়া জায়গাটি স্ট্রিপ মলের একটি রেস্তোরাঁ হয়, তাহলে "PREFERRED" প্রবেশপথগুলিই হবে রেস্তোরাঁটিতে যাওয়ার জন্য, অন্যদিকে ফেরত দেওয়া অন্যান্য প্রবেশপথগুলি হবে ভবনের অন্যান্য প্রবেশপথ, যেমন স্ট্রিপ মলের অন্যান্য রেস্তোরাঁগুলিতে প্রবেশপথ।

      যদি ফেরত দেওয়া জায়গাটি নিজেই একটি ভবন হয়, তাহলে "PREFERRED" প্রবেশপথগুলিই ভবনের "প্রধান" অংশে প্রবেশ করবে। উদাহরণস্বরূপ, একটি শপিং সেন্টারে "PREFERRED" প্রবেশপথগুলিই হবে প্রধান প্রবেশপথে প্রবেশের অনুমতি দেয়, কিন্তু যদি একটি প্রবেশপথ কেবল ভবনের পাশের একটি দোকানে প্রবেশের অনুমতি দেয়, তাহলে এটি "PREFERRED" প্রবেশপথ হবে না।

নিচের ছবিতে উপরের উদাহরণ অনুরোধের জন্য ভবনের রূপরেখা এবং প্রবেশপথগুলির একটি দৃশ্যমান উপস্থাপনা দেখানো হয়েছে।

একটি ভবনের রূপরেখা এবং দুটি প্রবেশপথ মানচিত্রে চিত্রিত করা হয়েছে। পছন্দের প্রবেশপথটি অন্য প্রবেশপথের চেয়ে বড় আইকন দিয়ে চিত্রিত করা হয়েছে।

উপরের উদাহরণ অনুরোধের উত্তরে দুটি প্রবেশপথ এবং একটি একক ভবনের রূপরেখা দেখানো হয়েছে। লক্ষ্য করুন যে প্রতিটি প্রবেশপথের building_place_id ভবনের place_id সাথে মিলে যায়:

{
  "entrances": [
    {
        "building_place_id" : "ChIJU1erIO-2j4ARzlavxpYBJr8",
        "location" :
        {
          "lat" : 37.3736684,
          "lng" : -122.0540469
        },
        "entrance_tags": ["PREFERRED"]
    },
    {
        "building_place_id" : "ChIJU1erIO-2j4ARzlavxpYBJr8",
        "location" :
        {
          "lat" : 37.3738239,
          "lng" : -122.0539773
        },
    }
  ],
  "buildings" : [
    {
      "building_outlines" : [
        {
          "display_polygon" : {
            "coordinates" : [
              [
                [
                  -122.054453349467,
                  37.3742345734776
                ],
                [
                  -122.054665964955,
                  37.3737591984554
                ],
                [
                  -122.054080317537,
                  37.3735936952922
                ],
                [
                  -122.053867527481,
                  37.374069124071
                ],
                [
                  -122.054453349467,
                  37.3742345734776
                ]
              ]
            ],
            "type" : "Polygon"
          }
        }
      ],
      "place_id" : "ChIJU1erIO-2j4ARzlavxpYBJr8"
    }
  ],
}

মানচিত্রে ভবনের রূপরেখা প্রদর্শন করুন

জাভাস্ক্রিপ্ট API-তে RFC 7946 ফর্ম্যাট Polygons এবং MultiPolygons প্রদর্শনের জন্য অন্তর্নির্মিত সমর্থন রয়েছে। আপনি এটি নিম্নরূপ করবেন:

  1. বহুভুজ ডেটা ব্যবহার করে একটি বৈশিষ্ট্য বস্তু তৈরি করুন।
  2. বহুভুজে একটি স্টাইল প্রয়োগ করুন।
  3. জাভাস্ক্রিপ্ট ম্যাপ অবজেক্টের সাথে বৈশিষ্ট্যটি সংযুক্ত করুন।

buildings অ্যারের প্রতিটি অবজেক্টে building_outlines অ্যারেতে একটি করে অবজেক্ট থাকে। নিচের উদাহরণে দেখানো হয়েছে কিভাবে একটি মানচিত্রে একটি বিল্ডিং আউটলাইন প্রদর্শন করতে হয়:

//This function takes an argument of 'buildings', which is the buildings[] array returned by the API.
async function displayBuildingOutline(buildings) {
    try {
        //Import the Google Maps Data library.
        const { Data } = await google.maps.importLibrary("maps")
        //Loop though the array of building outlines.
        buildings.forEach(building => {
            const features = []
            const buildingOutlines = building.building_outlines;
            //Add each building outline to a Feature object, and push this to an array of Features.
            buildingOutlines.forEach(buildingOutline => {
                const feature = {
                    type: "Feature",
                    properties: {},
                    geometry: buildingOutline.display_polygon
                }
                features.push(feature);
            });
            //Create a new Google Maps Data object, and apply styling.
            //We also assume the reference to the map on the page is named 'map'.
            //This applies the Data object to the map on the page.
            outlineLayer = new google.maps.Data({
                map,
                style: {
                    strokeColor: "#0085cc",
                    strokeOpacity: 1,
                    strokeWeight: 2,
                    fillColor: "#88d4fc",
                    fillOpacity: 0.5,
                },
            });
            //Add the array of Features created earlier to the Data object, as GeoJson.
            outlineLayer.addGeoJson({
                type: "FeatureCollection",
                features: features,
            });
        });
    } catch (e) {
        console.log('Building outlines failed. Error: ' + e)
    }
}

উপরের কোডটি ব্যবহার করে, এই ডকুমেন্টের আগের উদাহরণ প্রতিক্রিয়ার মধ্যে জিওকোডিং API দ্বারা ফেরত দেওয়া বিল্ডিং আউটলাইনটি মানচিত্রে নিম্নরূপে রেন্ডার করা হয়েছে:

মানচিত্রে দেখানো ভবনের রূপরেখা

একাধিক ভবন বা ভবনের রূপরেখা দিয়ে প্রতিক্রিয়া পরিচালনা করুন

আপনি নিম্নলিখিত পরিস্থিতির সম্মুখীন হতে পারেন; তবে, উপরের নমুনা কোডটি এখনও এগুলির জন্য কাজ করবে:

  1. একাধিক বহুভুজ প্রতিনিধিত্বকারী একটি একক building_outlines অবজেক্ট।
  2. buildings[] অ্যারেতে একাধিক ভবন সহ একটি প্রতিক্রিয়া।

উদাহরণস্বরূপ, স্থান ID ChIJGxgH9QBVHBYRl13JmZ0BFgo এর প্রতিক্রিয়াতে buildings[] অ্যারেতে দুটি ভবন রয়েছে:

"buildings": [
    {
        "building_outlines": [
            {
                "display_polygon": {
                    "coordinates": [
                        [
                            [
                                44.3313253363354,
                                13.636033631612
                            ],
                            [
                                44.3312576355624,
                                13.6362094887862
                            ],
                            [
                                44.3310854239923,
                                13.6361461767801
                            ],
                            [
                                44.3311531250111,
                                13.6359703194634
                            ],
                            [
                                44.3313253363354,
                                13.636033631612
                            ]
                        ]
                    ],
                    "type": "Polygon"
                }
            }
        ],
        "place_id": "ChIJ24NWUBhUHBYRSEmPBFa1wgc"
    },
    {
        "building_outlines": [
            {
                "display_polygon": {
                    "coordinates": [
                        [
                            [
                                44.330737534504,
                                13.6357057440832
                            ],
                            [
                                44.3307248314371,
                                13.6357390350529
                            ],
                            [
                                44.3306985591742,
                                13.635729486373
                            ],
                            [
                                44.3307114066013,
                                13.6356960265536
                            ],
                            [
                                44.330737534504,
                                13.6357057440832
                            ]
                        ]
                    ],
                    "type": "Polygon"
                }
            }
        ],
        "place_id": "ChIJpzQOABlUHBYRxiOC9goY1fE"
    }
]

উপরের জাভাস্ক্রিপ্ট কোড নমুনা ব্যবহার করে, আমরা মানচিত্রে উভয় বিল্ডিং রূপরেখা রেন্ডার করতে সক্ষম:

মানচিত্রে দুটি ভবনের রূপরেখা দেখানো হয়েছে

প্রতিক্রিয়া

এটি একটি পরীক্ষামূলক বৈশিষ্ট্য। geocoding-feedback-channel@google.com ঠিকানায় আমাদের মতামত জানালে আমরা কৃতজ্ঞ থাকবো।