私はiOS開発の初心者です。これは、Google Maps iOS SDKのマーカー情報ウィンドウに関するものです。
GMSMarkerOptionを使用して、情報ウィンドウでマーカーを作成できることを理解しています。
GMSMarkerOption *myLocationOption = [GMSMarkerOption alloc];
myLocationOption .title = @"My Location";
myLocationOption .snippet = @"Lat:...., Lang:....";
[mapView addMarkerOption:myLocationOption];
上記のコードに従って、マーカーは予想どおりにマップビューに表示されました。また、マーカーをタップすると、Googleマップに「現在地」情報ウィンドウが表示されます。
とにかく、ユーザーがカスタムマップ画面に移動したときに情報ウィンドウをプログラムで表示できますか?
GMSMarkerOptions *myLocationOptions = [GMSMarkerOptions options];
myLocationOptions.title = @"My Location";
myLocationOptions.snippet = @"Lat:...., Lang:....";
mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions];
(オプションではなくオプションであることに注意してください)
これはGoogle Maps SDKで変更され、わかりやすくなりました。
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = coordinate;
marker.title = @"Location selected";
marker.snippet = @"Testing";
marker.map = mapView_;
//Show info window on map
[mapView_ setSelectedMarker:marker];
setSelectedMarkerメソッドを使用して、マーカーの情報ウィンドウを表示します
Swift 3.
func addMarker(_ location:CLLocation){
var locationMarker: GMSMarker!
if locationMarker != nil {
locationMarker.map = nil
}
locationMarker = GMSMarker(position: location.coordinate)
locationMarker.map = mapView
locationMarker.appearAnimation = kGMSMarkerAnimationPop
locationMarker.icon = GMSMarker.markerImage(with: UIColor.green)
locationMarker.opacity = 0.85
locationMarker.isFlat = true
locationMarker.snippet = "My Location"
mapView.selectedMarker=locationMarker
}
下の行が答えです
mapView.selectedMarker=locationMarker
Swift
self.mapView.selectedMarker = marker
Swift 3の場合、snipet
を使用してselectedMarker
を開くことができます
同様の方法でマーカーを作成している場合:
marker.position = CLLocationCoordinate2D(latitude: 34.1331168, longitude: -118.3550723)
marker.title = "My super place name"
marker.snippet = "Are you looking a place to play? This is your place! "
marker.appearAnimation = kGMSMarkerAnimationPop
marker.map = self.mapView
// Below line will shows the infowindow for marker with out tapping on it
[mapView setSelectedMarker:myLocationOptions]; // myLocationOptions is your desired GMSMarker to show Infowindow with out tapping .
ハッピーコーディング:)
->マーカーをタップせずに複数の情報ウィンドウを表示します。簡単にカスタマイズできます。
0のiについて.
let dict = arrNearByPlacesArray.object(at: i) as? NSDictionary ?? [:]
let lat = dict.object(forKey: "latitude") as? String ?? ""
let long = dict.object(forKey: "longitude") as? String ?? ""
let company_id = dict.object(forKey: "company_id") as? String ?? ""
let totaljobs = dict.object(forKey: "totaljobs") as? String ?? ""
let location = CLLocationCoordinate2D(latitude: Double(lat) ?? 0.0, longitude: Double(long) ?? 0.0)
print("location: \(location)")
let marker = GMSMarker()
//marker.icon = UIImage(named: "maps")
let viewData = Bundle.main.loadNibNamed("MarkerXibView", owner: self, options: nil)?.first as! MarkerXibView . //UIView
marker.iconView = viewData . //UIView
marker.position = location
marker.accessibilityLabel = company_id
marker.map = vwGoogleMap
}
mMapView.selectedMarker =マーカー
GMSMarkerOptionsは廃止されました。これを使用すると、タップせずに情報ウィンドウを表示できました。
func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {
myMapView.selectedMarker = myGMSMarker
}