একটি উন্নত মার্কার তৈরি করুন

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

নীচে দেখানো হিসাবে, মৌলিক বা নির্দিষ্ট মার্কার বৈশিষ্ট্য তৈরি করতে GMSAdvancedMarker সাবক্লাস ব্যবহার করুন। GMSMarker এর একটি সাবক্লাস হিসাবে, GMSAdvancedMarker মার্কারগুলিকে আরও এক্সপ্রেশন প্রদান করে।

সুইফট

let camera = GMSCameraPosition( target: coordinate, zoom: 14)
let mapID = GMSMapID(identifier: "YOUR_MAP_ID")
let mapView = GMSMapView(frame: view.bounds, mapID: mapID, camera: camera)

let marker = GMSAdvancedMarker(position: coordinate)
marker.map = mapView

অবজেক্টিভ-সি

GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:kCoordinate zoom:16];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:"YOUR_MAP_ID"];

self.mapView = [GMSMapView mapWithFrame:self.view.bounds mapID:mapID camera:camera];

GMSAdvancedMarker *marker = [GMSAdvancedMarker markerWithPosition:kCoordinate];
Marker.map = self.mapView;

একটি উন্নত মার্কার সরান

GMSMarker এর মতো, আপনি GMSAdvancedMarker এর map প্রপার্টি nil এ সেট করে মানচিত্র থেকে একটি উন্নত মার্কার সরাতে পারেন। বিকল্পভাবে, আপনি GMSMapView clear পদ্ধতি ব্যবহার করে মানচিত্রের সমস্ত ওভারলে (উন্নত মার্কার সহ) সরাতে পারেন।

সুইফট

let camera = GMSCameraPosition.camera(
  withLatitude: -33.8683,
  longitude: 151.2086,
  zoom: 6
)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
// ...
mapView.clear()
      

অবজেক্টিভ-সি

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
// ...
[mapView clear];
      

মানচিত্রে কোনও মার্কার যোগ করার পর যদি আপনি তাতে পরিবর্তন করতে চান, তাহলে নিশ্চিত করুন যে আপনি GMSAdvancedMarker অবজেক্টটি ধরে রেখেছেন। আপনি পরে এই অবজেক্টে পরিবর্তন করে মার্কারটি পরিবর্তন করতে পারেন।

সুইফট

let position = CLLocationCoordinate2D(latitude: 10, longitude: 10)
let marker = GMSAdvancedMarker(position: position)
marker.map = mapView
// ...
marker.map = nil

অবজেক্টিভ-সি

CLLocationCoordinate2D position = CLLocationCoordinate2DMake(10, 10);
GMSAdvancedMarker *marker = [GMSAdvancedMarker markerWithPosition:position];
marker.map = mapView;
// ...
marker.map = nil;

মানচিত্রের ক্ষমতা

GMSMapView এর mapCapabilities প্রপার্টি ম্যাপ-নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য প্রোগ্রাম্যাটিক চেকিং যোগ করে। নির্দিষ্ট API কল করার আগে নির্দিষ্ট ম্যাপ ক্ষমতা উপলব্ধ কিনা তা জানতে চাইলে এটি কার্যকর। ক্ষমতা পরিবর্তনের সাথে সাথে GMSMapViewDelegate এর didChangeMapCapabilities ফাংশনটিও ব্যবহার করা হয় । এই কোয়েরিটি নির্ধারণ করে যে ম্যাপ ভিউ উন্নত মার্কারগুলিকে সমর্থন করে কিনা।

সুইফট

// ...

let advancedMarker: GMSAdvancedMarker = {
GMSAdvancedMarker(position: CLLocationCoordinate2D(latitude: 47.6089945, longitude: -122.3410462))
}()

let marker: GMSMarker = {
GMSMarker(position: CLLocationCoordinate2D(latitude: 47.6089945, longitude: -122.3410462))
}()

func addMarker() {
  if mapView.mapCapabilities.contains(.advancedMarkers) {
      advancedMarker.map = mapView
    } else {
      marker.map = mapView
    }
}

extension MapCapabilities: GMSMapViewDelegate {
  func mapView(_ mapView: GMSMapView, didChangeMapCapabilities mapCapabilities: GMSMapCapabilityFlags) {

     let advancedMarkerAvailable = mapCapabilities.contains(.advancedMarkers)

     advancedMarker.map = advancedMarkerAvailable ? mapView : nil
     marker.map = advancedMarkerAvailable ? nil : mapView
  }
}

অবজেক্টিভ-সি

// ...

_advancedMarker = [GMSAdvancedMarker markerWithPosition:  kSeattleCoordinates];
_fallbackMarker = [GMSMarker markerWithPosition: kSeattleCoordinates];

-   (void)addMarker {

  if (_mapView.mapCapabilities & GMSMapCapabilityFlagsAdvancedMarkers) {
    _advancedMarker.map = _mapView;
    } else {
    _fallbackMarker.map = _mapView;
  }
}

#pragma mark - GMSMapViewDelegate

-   (void)mapView:(GMSMapView *)mapView
    didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities {
  BOOL advancedMarkersAvailable = mapCapabilities & GMSMapCapabilityFlagsAdvancedMarkers;
  _advancedMarker.map = advancedMarkersAvailable ? _mapView : nil;
  _fallbackMarker.map = advancedMarkersAvailable ? nil : _mapView;
}