形状,多边形,未在GoogleMaps上快速显示

时间:2018-08-28 01:10:07

标签: ios swift google-maps polygon

我无法在地图上显示多边形。这是下面的代码。

import UIKit

import MapKit

import CoreLocation

import GoogleMaps

import GooglePlaces

class ViewController: UIViewController{


    @IBOutlet weak var mapView: GMSMapView!



        //private let locationManager = CLLocationManager()

        var placesClient: GMSPlacesClient!

        var locationManager = CLLocationManager()
        var mapsView : GMSMapView!
        var zoomLevel: Float = 15.0
        var polygon = GMSPolygon()
        var didFindMyLocation = false
       // let overlay = UIView()


        let defaultLocation = CLLocation(latitude: -33.869405, longitude: 151.99)
    let path = GMSMutablePath()



        override func viewDidLoad() {

            super.viewDidLoad()

            mapsView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

            mapsView.isMyLocationEnabled = true

            view.addSubview(mapsView)

            mapsView.isHidden = true


        }

    func createpolygon() {
        // Create a rectangular path
        let rect = GMSMutablePath()
        rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
        rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
        rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
        rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))

        // Create a polygon and assign it to the map.
        let polygon = GMSPolygon(path: rect)
        polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.05);
        polygon.strokeColor = .black
        polygon.strokeWidth = 2
        polygon.map = mapsView
    }

我不知道是否需要添加覆盖图。

1 个答案:

答案 0 :(得分:2)

您有两个mapView只需使用其中一个

@IBOutlet weak var mapView: GMSMapView!
var mapsView : GMSMapView!

class ViewController: UIViewController{

@IBOutlet weak var mapView: GMSMapView!


    //private let locationManager = CLLocationManager()

    var placesClient: GMSPlacesClient!

    var locationManager = CLLocationManager()
    var zoomLevel: Float = 15.0
    var polygon = GMSPolygon()
    var didFindMyLocation = false
   // let overlay = UIView()


    let defaultLocation = CLLocation(latitude: -33.869405, longitude: 151.99)
let path = GMSMutablePath()



    override func viewDidLoad() {

        super.viewDidLoad()

        mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

        mapView.isMyLocationEnabled = true

        mapView.isHidden = true


    }

func createpolygon() {
    // Create a rectangular path
    let rect = GMSMutablePath()
    rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
    rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
    rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
    rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))

    // Create a polygon and assign it to the map.
    let polygon = GMSPolygon(path: rect)
    polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.05);
    polygon.strokeColor = .black
    polygon.strokeWidth = 2
    polygon.map = mapView
}