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

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

মৌলিক বা নির্দিষ্ট মার্কার বৈশিষ্ট্য তৈরি করতে 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 এর মানচিত্র বৈশিষ্ট্যকে 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;

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

GMSMapViewmapCapabilities বৈশিষ্ট্য মানচিত্র-নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য প্রোগ্রাম্যাটিক চেকিং যোগ করে। নির্দিষ্ট 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;
}