public override int GetHashCode()
        {
            int hash = 1;

            if (Id.Length != 0)
            {
                hash ^= Id.GetHashCode();
            }
            if (Name.Length != 0)
            {
                hash ^= Name.GetHashCode();
            }
            if (Latitude != 0D)
            {
                hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Latitude);
            }
            if (Longitude != 0D)
            {
                hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Longitude);
            }
            if (Description.Length != 0)
            {
                hash ^= Description.GetHashCode();
            }
            if (typeCase_ == TypeOneofCase.Outpost)
            {
                hash ^= Outpost.GetHashCode();
            }
            if (typeCase_ == TypeOneofCase.Fortress)
            {
                hash ^= Fortress.GetHashCode();
            }
            if (typeCase_ == TypeOneofCase.Greenhouse)
            {
                hash ^= Greenhouse.GetHashCode();
            }
            if (PoiAccessibility != 0)
            {
                hash ^= PoiAccessibility.GetHashCode();
            }
            hash ^= (int)typeCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }